#字棋代码

注意事项

scanf(" %c",&a[i][j]);中的空格用于跳过任何空白字符,包括空格、制表符和换行符,这确保了即使用户在输入时包含这些字符,也能正确读取棋盘状态。

judge函数中的same变量在每次检查新的行、列或对角线之前都被重置为0。

代码假设棋盘上的空位已经被某种方式处理,因为judge函数只检查是否有玩家赢得游戏,而不检查棋盘是否已满或是否有平局。

#include<stdio.h>

bool judge(char a [3][3],char t)

{

int same =0;

for(int i=0;i<3;i++)

{ same =0;

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

{

if(a[i][j]==t) same++;

}

if(same==3) return true ;

}

for(int i=0;i<3;i++)

{ same =0;

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

{

if(a[j][i]==t) same++;

}

if(same==3) return true;

}

same =0;

for(int i=0;i<3;i++)

{

if(a[i][i]==t) same++;

if(same==3) return true;

}

same=0;

for(int i=0;i<3;i++)

{

if(a[i][2-i]==t) same++;

if(same==3) return true ;

}

return false ;

}

int main()

{

char a[3][3];

for(int i=0;i<3;i++)

{

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

{

scanf(" %c",&a[i][j]);

}

}

if(judge(a,'K')) printf("KiKi wins!");

else if(judge(a,'B')) printf("BoBo wins!");

else printf("No winner!");

return 0;#include<stdio.h>

bool judge(char a [3][3],char t)

{

int same =0;

for(int i=0;i<3;i++)

{ same =0;

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

{

if(a[i][j]==t) same++;

}

if(same==3) return true ;

}

for(int i=0;i<3;i++)

{ same =0;

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

{

if(a[j][i]==t) same++;

}

if(same==3) return true;

}

same =0;

for(int i=0;i<3;i++)

{

if(a[i][i]==t) same++;

if(same==3) return true;

}

same=0;

for(int i=0;i<3;i++)

{

if(a[i][2-i]==t) same++;

if(same==3) return true ;

}

return false ;

}

int main()

{

char a[3][3];

for(int i=0;i<3;i++)

{

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

{

scanf(" %c",&a[i][j]);

}

}

if(judge(a,'K')) printf("KiKi wins!");

else if(judge(a,'B')) printf("BoBo wins!");

else printf("No winner!");

return 0;

全部评论

相关推荐

10-01 09:50
门头沟学院 Java
肖先生~:这个人真的很好,点赞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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