当前位置:文档之家› 《C语言高级程序》课程作业——tic-tac-toe游戏源代码

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

#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("无人获胜");
}

相关主题
文本预览
相关文档 最新文档