题目总览
题目描述
小 a 和 uim 喜欢互相切磋三子棋。三子棋大家都玩过是吗?就是在九宫格里面 OOXX(别想歪了),谁连成 3 个就赢了。
由于小 a 比较愚蠢,uim 总是让他先。
我们用 9 个数字表示棋盘位置:
123
456
789
所有的棋谱都是已经结束的棋局,要么一方获胜,要么平局。
今天,他们下了一下午的棋,小 a 为了提高技术,录下了很多棋谱。他想知道,一盘棋结束时,到底是谁赢。
输入格式
一行,一串数字,表示落子的地点。小 a 总是先下。
输出格式
一行,如果小 a 赢,输出 xiaoa wins.
。如果 uim 赢,输出 uim wins.
。如果平局,输出 drew.
。
思路分析
又是一题暴力判断+枚举。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int chess[9];
int count = 0;
int record;
for (int i = 0; i < 9; i++)
{
chess[i] = -100;
}
cin>>record;
while (record != 0)
{
count++;
chess[record % 10 - 1] = count % 2;
record /= 10;
}
//暴力
if ((chess[0] == chess[1] && chess[1] == chess[2]) ||
(chess[3] == chess[4] && chess[4] == chess[5]) ||
(chess[6] == chess[7] && chess[7] == chess[8]) ||
(chess[0] == chess[3] && chess[3] == chess[6]) ||
(chess[1] == chess[4] && chess[4] == chess[7]) ||
(chess[2] == chess[5] && chess[5] == chess[8]) ||
(chess[0] == chess[4] && chess[4] == chess[8]) ||
(chess[2] == chess[4] && chess[4] == chess[6]))
{
if (count % 2 == 1)
{
cout<<"xiaoa wins."<<endl;
}
else
{
cout<<"uim wins."<<endl;//一定要加英文标点啊!!!
}
}
else
{
cout<<"drew."<<endl;
}
return 0;
}