井字棋

链接:https://ac.nowcoder.com/acm/contest/93963/D链接:https://ac.nowcoder.com/acm/contest/93963/D

来源:牛客网

题目描述

KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入描述:

三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。

输出描述:

如果KiKi获胜,输出“KiKi wins!”;

如果BoBo获胜,输出“BoBo wins!”;

如果没有获胜,输出“No winner!”。

示例1

输入

复制

K O B

O K B

B O K

输出

复制

KiKi wins!

#include<iostream>

using namespace std;

int main() {

char a[3][3];

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]) {

if (a[i][0] == 'K') {

cout << "KiKi wins!";

return 0;

} if (a[i][0] == 'B') {

cout << "BoBo wins!";

return 0;

}

}

}

for (int j = 0; j < 3; j++) {

if (a[0][j] == a[1][j] && a[1][j] == a[2][j]) {

if (a[0][j] == 'K') {

cout << "KiKi wins!" << endl;

return 0;

}

else if (a[0][j] == 'B') {

cout << "BoBo wins!" << endl;

return 0;

}

}

}

if (a[0][0] == a[1][1] && a[1][1] == a[2][2]) {

if (a[0][0] == 'K') {

cout << "KiKi wins!" << endl;

return 0;

}

else if (a[0][0] == 'B') {

cout << "BoBo wins!" << endl;

return 0;

}

}

if (a[0][2] == a[1][1] && a[1][1] == a[2][0]) {

if (a[0][2] == 'K') {

cout << "KiKi wins!" << endl;

return 0;

}

else if (a[0][2] == 'B') {

cout << "BoBo wins!" << endl;

return 0;

}

}

cout << "No winner!" << endl;

return 0;

}

此题经寻找规律发现可与复制粘贴再修改少量数据就可以运行

分别对行列和对角线进行判断输入输出

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务