暑假第一周
一周过去,这个小学期也即将结束,这一周主要是完成小学期的那十个编程任务。编程过程中遇到了很多的问题,有的是一些小细节的问题;有的就不太懂怎么改了。
就比如:这次作业有一个是编“井字棋”游戏,我把判断输赢的函数写在了main主函数外面,由于形参不能传给实参(这里o原来是形参),所以到后面就不能退出,而是继续提示您下棋。所以我就把判断输赢的函数又写到主函数里面去了(部分如下),但是这样就会麻烦很多。占的内存多,效率也不高。如果有更好的方法,希望大家多多给我提出来。
void panduan();
{
if (((a[0][0] == y) && (a[0][1] == y) && (a[0][2] == y)) || ((a[1][0] == y) && (a[1][1] == y) && (a[1][2] == y)) || ((a[2][0] == y) && (a[2][1] == y) && (a[2][2] == y)) || ((a[0][0] == y) && (a[1][0] == y) && (a[2][0] == y)) || ((a[0][1] == y) && (a[1][1] == y) && (a[2][1] == y)) || ((a[0][2] == y) && (a[1][2] == y) && (a[2][2] == y)) || ((a[0][0] == y) && (a[1][1] == y) && (a[2][2] == y)) || ((a[2][0] == y) && (a[1][1] == y) && (a[0][2] == y)))
{
o = 1;
cout << "很遗憾你输了!" << endl;
cout << "游戏结束!" << endl;
}
else if (((a[0][0] == z) && (a[0][1] == z) && (a[0][2] == z)) || ((a[1][0] == z) && (a[1][1] == z) && (a[1][2] == z)) || ((a[2][0] == z) && (a[2][1] == z) && (a[2][2] == z)) || ((a[0][0] == z) && (a[1][0] == z) && (a[2][0] == z)) || ((a[0][1] == z) && (a[1][1] == z) && (a[2][1] == z)) || ((a[0][2] == z) && (a[1][2] == z) && (a[2][2] == z)) || ((a[0][0] == z) && (a[1][1] == z) && (a[2][2] == z)) || ((a[2][0] == z) && (a[1][1] == z) && (a[0][2] == z)))
{
o = 1;
cout << "恭喜你赢了!" << endl;
cout << "游戏结束!" << endl;
}
else
o = 0;
}
if (o == 1)
{
cout << "1、继续;2、退出" << endl;
char r;
cin >> r;
if (r == '1')
{
goto begin_3;
}
if (r == '2')
{
goto begin_2;
}
}