C++ tic toe程序循环未关闭
我的问题是,当任何一个获胜的条件得到满足,而不是结束程序,它会回到决定是否采取立场的循环。我在没有四次休息的情况下尝试了它,但它也不起作用C++ tic toe程序循环未关闭,c++,C++,我的问题是,当任何一个获胜的条件得到满足,而不是结束程序,它会回到决定是否采取立场的循环。我在没有四次休息的情况下尝试了它,但它也不起作用 #include <iostream> using namespace std; int main() { int a,b,c,d,e,f,g,h,i,x,y,winning,repeat,q,r; int array[3][3] = {{a,b,c},{d,e,f},{g,h,i}}; winning=6; fo
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i,x,y,winning,repeat,q,r;
int array[3][3] = {{a,b,c},{d,e,f},{g,h,i}};
winning=6;
for(q = 0;q<=2;q++)
{
for(r = 0;r<=2;r++)
{
array[q][r]=0;
cout << "Row: " << q << "Column: " << r << "Value: " << array[q][r] << endl;
}
}
while (winning = 6)
{
cout << "Player 1 Row: ";
cin >> x;
cout << "Player 1 Column: ";
cin >> y;
cout << " " << endl;
if (array[x][y] != 0 )
{
repeat=1;
while (repeat=1)
{
cout << "That row is taken: ";
cout << "Player 1 Row: ";
cin >> x;
cout << "Player 1 Column: ";
cin >> y;
cout << " " << endl;
if (array[x][y] == 0)
{
repeat=0;
}
}
}
array[x][y] = 1;
cout << array[x][y];
cout << "Player 2 Row: ";
cin >> x;
cout << "Player 2 Column: ";
cin >> y;
cout << " " << endl;
if (array[x][y] != 0 )
{
repeat=1;
while (repeat=1)
{
cout << "That row is taken: " << endl;
cout << "Player 2 Row: ";
cin >> x;
cout << "Player 2 Column: ";
cin >> y;
cout << " " << endl;
if (array[x][y] == 0)
{
repeat=0;
}
}
}
array[x][y] = 2;
if (array[0][0] != 0)
{
if (array[0][1] != 0)
{
if (array[0][0] == array[0][1])
{
if (array[0][1] == array[0][2])
{
winning=array[0][0];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[1][0] == array[1][1])
{
if (array[1][1] == array[1][2])
{
winning=array[1][0];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[2][0] == array[2][1])
{
if (array[2][1] == array[2][2])
{
winning=array[2][0];
break;
break;
break;
break;
}
}
if (array[0][0] == array[1][0])
{
if (array[1][0] == array[2][0])
{
winning=array[0][0];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[0][1] == array[1][1])
{
if (array[1][1] == array[2][1])
{
winning=array[0][1];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[0][2] == array[1][2])
{
if (array[1][2] == array[2][2])
{
winning=array[0][2];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[0][1] == array[1][1])
{
if (array[1][1] == array[2][2])
{
winning=array[0][1];
break;
break;
break;
break;
}
}
}
}
if (array[1][0] != 0)
{
if (array[1][1] != 0)
{
if (array[0][2] == array[1][1])
{
if (array[1][1] == array[2][2])
{
winning=array[0][2];
break;
break;
break;
break;
}
}
}
}
}
cin.ignore();
cin.get();
}
#包括
使用名称空间std;
int main()
{
int a,b,c,d,e,f,g,h,i,x,y,wing,repeat,q,r;
int数组[3][3]={{a,b,c},{d,e,f},{g,h,i};
获胜=6;
因为(q=0;qwhile(winning=6)
将始终返回true,您需要的是while(winning==6)
表达式wing=6
将返回6,该值被强制转换为bool
将等于true
。您在循环中经常这样做,请记住=
(赋值)和=
相等。break;break;break;break;?-1谢谢,当我更改该值时,程序关闭了,但只是在它经过决定是否再次采取某个位置的循环几次之后。