第四个点显示Wrong Answer.wrong answer 1st words differ - expected: 'illegal', found: 'first'
代码
#include <bits/stdc++.h>
using namespace std;
char a[5][5];
int tot[5];
bool check1()
{
if(tot[1] == tot[2])
{
return 1;
}
return 0;
}
bool check2()
{
if(tot[1] - tot[2] == 1)
{
return 1;
}
return 0;
}
bool check3()
{
if(tot[1] - tot[2] >= 2)
{
return true;
}
else if(tot[1] < tot[2])
{
return true;
}
return false;
}
bool check4()
{
for(int i = 1;i <= 3;i ++)
{
for(int j = 1;j <= 3;j ++)
{
if(a[i][j] == 'X')
{
if(a[i][j - 1] == 'X' && a[i][j + 1] == 'X')
{
return 1;
}
else if(a[i][j +1] == 'X' && a[i][j + 2] == 'X')
{
return 1;
}
else if(a[i-1][j] == 'X' && a[i+1][j] == 'X')
{
return 1;
}
else if(a[i+1][j] == 'X' && a[i+2][j] == 'X')
{
return 1;
}
else if(a[i - 1][j + 1] == 'X' && a[i + 1][j - 1] == 'X')
{
return 1;
}
else if(a[i - 1][j - 1] == 'X' && a[i - 1][j + 1] == 'X')
{
return 1;
}
}
}
}
return 0;
}
bool check5()
{
for(int i = 1;i <= 3;i ++)
{
for(int j = 1;j <= 3;j ++)
{
if(a[i][j] == 'O')
{
if(a[i][j - 1] == 'O' && a[i][j + 1] == 'O')
{
return 1;
}
else if(a[i][j +1] == 'O' && a[i][j + 2] == 'O')
{
return 1;
}
else if(a[i-1][j] == 'O' && a[i+1][j] == 'O')
{
return 1;
}
else if(a[i+1][j] == 'O' && a[i+2][j] == 'O')
{
return 1;
}
else if(a[i - 1][j + 1] == 'O' && a[i + 1][j - 1] == 'O')
{
return 1;
}
else if(a[i - 1][j - 1] == 'O' && a[i - 1][j + 1] == 'O')
{
return 1;
}
}
}
}
return 0;
}
signed main(int argc, char const *argv[])
{
for(int i = 1;i <= 3;i ++)
{
for(int j = 1;j <= 3;j ++)
{
cin >> a[i][j];
if(a[i][j] == 'X')
{
tot[1]++;
}
else if(a[i][j] == '0')
{
tot[2]++;
}
}
}
if(check3())
{
cout << "illegal";
return 0;
}
if(check4() && check5())
{
cout << "draw";
return 0;
}
if(check1())
{
cout <<"first";
return 0;
}
if(check2())
{
cout <<"second";
return 0;
}
if(check4())
{
cout << "the first player won";
return 0;
}
if(check5())
{
cout << "the second player won";
return 0;
}
return 0;
}