枚举出奇迹
井字棋这道题很简单,不要多想。
下面,讲一下我的思路:
要用一个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;
}
欢迎参考