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;q
while(winning=6)
将始终返回true,您需要的是
while(winning==6)


表达式
wing=6
将返回6,该值被强制转换为
bool
将等于
true
。您在循环中经常这样做,请记住
=
(赋值)和
=
相等。

break;break;break;break;?-1谢谢,当我更改该值时,程序关闭了,但只是在它经过决定是否再次采取某个位置的循环几次之后。