批量处理数据程序设计-D井字棋
链接:https://ac.nowcoder.com/acm/contest/93961/D链接:https://ac.nowcoder.com/acm/contest/93961/D
来源:牛客网
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
输入描述:
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
输出描述:
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
#include<iostream>
using namespace std;
int main()
{
char a[3][3];
bool gameOver=false;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cin>>a[i][j];
}
}
for (int i=0;i<3;i++){
if (a[i][0]==a[i][1]&&a[i][1]==a[i][2]&&a[i][0]!='O'){
if (a[i][0]=='K') {
cout <<"KiKi wins!"<<endl;
gameOver = true;
} else if (a[i][0] == 'B') {
cout<<"BoBo wins!"<<endl;
gameOver = true;
}
}
}
for (int j = 0; j < 3; j++) {
if (a[0][j] == a[1][j] && a[1][j] == a[2][j]&&a[0][j]!='O') {
if (a[0][j] == 'K') {
cout << "KiKi wins!" << endl;
gameOver = true;
} else if (a[0][j] == 'B') {
cout << "BoBo wins!" << endl;
gameOver = true;
}
}
}
if (a[0][0] == a[1][1] && a[1][1] == a[2][2]&&a[0][0]!='O') {
if (a[0][0] == 'K') {
cout << "KiKi wins!" << endl;
gameOver = true;
} else if (a[0][0] == 'B') {
cout << "BoBo wins!" << endl;
gameOver = true;
}
}
if (a[0][2] == a[1][1] && a[1][1] == a[2][0]&&a[0][2]!='O') {
if (a[0][2] == 'K') {
cout << "KiKi wins!" << endl;
gameOver = true;
} else if (a[0][2] == 'B') {
cout << "BoBo wins!" << endl;
gameOver = true;
}
}
if(!gameOver){
cout<<"No winner!"<<endl;
}
return 0;
}