《C语言高级程序》课程作业——tic-tac-toe游戏源代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#define size 3
main()
{
int a[size][size],i,j,num_x,num_o,winner[4]={-1,-1,-1,-1};
printf("请按行输入%dx%d矩阵(其中数字为1表示该位置上有一个X,为0表示为O,为2表示为空格)\n",size,size);
for(i=1;i<=size;i++){
for(j=1;j<=size;j++)
scanf("%d",&a[i][j]);
}
//检查行
for(i=1;i<=size;i++){
for(j=1,num_x=0,num_o=0;j<=size;j++){
if(a[i][j]==1){
num_x++;
}
else if(a[i][j]==0) num_o++;
}
if(num_x==size){
winner[1]=1;
goto loop1;
}
else{
if(num_o==size) {
winner[1]=0;
goto loop1;
}
else winner[1]=-1;
}
}
//检查列
for(j=1;j<=size;j++){
for(i=1,num_x=0,num_o=0;i<=size;i++){
if(a[i][j]==1){
num_x++;
}
else if(a[i][j]==0) num_o++;
}
if(num_x==size){
winner[2]=1;
goto loop1;
}
else{
if(num_o==size){
winner[2]=0;
goto loop1;
}
else winner[2]=-1;
}
}
//检查左倾斜线
for(i=1,num_x=0,num_o=0;i<=size;i++){
if(a[i][i]==1){
num_x++;
}
else if(a[i][i]==0) num_o++;
if(num_x==size){
winner[3]=1;
goto loop1;
}
else{
if(num_o==size){
winner[3]=0;
goto loop1;
}
else winner[3]=-1;
}
}
//检查右倾斜线
for(i=1,num_x=0,num_o=0;i<=size;i++){
if(a[i][size-i+1]==1){
num_x++;
}
else if(a[i][size-i+1]==0) num_o++;
if(num_x==size) {
winner[4]=1;
goto loop1;
}
else{
if(num_o==size){
winner[4]=0;
goto loop1;
}
else winner[4]=-1;
}
}
//输出结果
loop1:
for(i=1;i<=4;i++){
if(winner[i]==1){
printf("获胜者为x");
break;
}
else {
if(winner[i]==0){
printf("获胜者为o");
break;
}
}
}
if(winner[1]==-1&&winner[2]==-1&&winner[3]==-1&&winner[4]==-1)
printf("无人获胜");
}

相关文档
最新文档