枚举出奇迹

井字棋这道题很简单,不要多想。

下面,讲一下我的思路:

要用一个if-else if-else多分支 第一个if,判断KiKi赢得条件:

每一行,每一列,从左上到右下的对角线,从右上到左下的对角线

if(jing[1][1]=='K'&&jing[1][2]=='K'&&jing[1][3]=='K'||jing[2][1]=='K'&&jing[2][2]=='K'&&jing[2][3]=='K'||jing[3][1]=='K'&&jing[3][2]=='K'&&jing[3][3]=='K'||jing[1][1]=='K'&&jing[2][1]=='K'&&jing[3][1]=='K'||jing[1][2]=='K'&&jing[2][2]=='K'&&jing[3][2]=='K'||jing[1][3]=='K'&&jing[2][3]=='K'&&jing[3][3]=='K'||jing[1][1]=='K'&&jing[2][2]=='K'&&jing[3][3]=='K'||jing[1][3]=='K'&&jing[2][2]=='K'&&jing[3][1]=='K'){
	cout<<"KiKi wins!";
}	
Kiki获胜的条件

那么同理BoBo获胜的条件也同理,只是把K换成B还有输出改一下

如果上面两个都没有执行,则输出No winner!

下面是完整代码:

#include<bits/stdc++.h>
using namespace std;
char jing[5][5];
int main(){
for(int i=1;i<=3;i++){
	for(int j=1;j<=3;j++){
		cin>>jing[i][j];
	}
}
if(jing[1][1]=='K'&&jing[1][2]=='K'&&jing[1][3]=='K'||jing[2][1]=='K'&&jing[2][2]=='K'&&jing[2][3]=='K'||jing[3][1]=='K'&&jing[3][2]=='K'&&jing[3][3]=='K'||jing[1][1]=='K'&&jing[2][1]=='K'&&jing[3][1]=='K'||jing[1][2]=='K'&&jing[2][2]=='K'&&jing[3][2]=='K'||jing[1][3]=='K'&&jing[2][3]=='K'&&jing[3][3]=='K'||jing[1][1]=='K'&&jing[2][2]=='K'&&jing[3][3]=='K'||jing[1][3]=='K'&&jing[2][2]=='K'&&jing[3][1]=='K'){
	cout<<"KiKi wins!";
}
else if(jing[1][1]=='B'&&jing[1][2]=='B'&&jing[1][3]=='B'||jing[2][1]=='B'&&jing[2][2]=='B'&&jing[2][3]=='B'||jing[3][1]=='B'&&jing[3][2]=='B'&&jing[3][3]=='B'||jing[1][1]=='B'&&jing[2][1]=='B'&&jing[3][1]=='B'||jing[1][2]=='B'&&jing[2][2]=='B'&&jing[3][2]=='B'||jing[1][3]=='B'&&jing[2][3]=='B'&&jing[3][3]=='B'||jing[1][1]=='B'&&jing[2][2]=='B'&&jing[3][3]=='B'||jing[1][3]=='B'&&jing[2][2]=='B'&&jing[3][1]=='B'){
	cout<<"BoBo wins!";
}
else{
	cout<<"No winner!";
}
return 0;
}

欢迎参考