题目描述
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
输入描述:
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
输出描述:
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
解题思路
粗暴方法,将每中方式都列出来一一对比。
代码
#include<iostream> #include<string> using namespace std; int main() { string a[9]; for(int i=0;i!=9;++i) cin>>a[i]; if(a[0]==a[1] && a[0]==a[2] && a[0]!="O")//本题采用的暴力解法,采用if语句一个一个判断。。。。 { if(a[0]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[3]==a[4]&& a[3]==a[5] && a[3]!="O") { if(a[3]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[6]==a[7]&& a[6]==a[8] && a[6]!="O") { if(a[6]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[0]==a[3]&& a[0]==a[6] && a[0]!="O") { if(a[0]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[1]==a[4]&& a[1]==a[7] && a[1]!="O") { if(a[1]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[2]==a[5]&& a[2]==a[8] && a[2]!="O") { if(a[2]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[0]==a[4]&& a[0]==a[8] && a[0]!="O") { if(a[0]=="K") cout<<"KiKi wins!"<<endl; else cout<<"BoBo wins!"; } else if(a[2]==a[4]&& a[2]==a[6] && a[2]!="O") { if(a[2]=="K") cout<<"KiKi wins!"; else cout<<"BoBo wins!"; } else cout<<"No winner!"<<endl; return 0; }