该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
int game[3][3]={0};
void Show(int turn,int x,int y)
{
int i=0,j=0;
if(x>0 && y>0)
{
if(turn%2)
{
game[x-1][y-1]=1;
}
else
{
game[x-1][y-1]=-1;
}
}
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
if(game[i][j]==1)
printf(" o");
else if(game[i][j]==-1)
printf(" x");
else printf(" *");
}
printf("\n");
}
}
int Victory(int x,int y)
{
if((game[1][1]==game[0][0] && game[1][1]==game[2][2] && game[1][1]!=0) ||
(game[1][1]==game[0][1] && game[1][1]==game[2][1] && game[1][1]!=0) ||
(game[1][1]==game[0][2] && game[1][1]==game[2][0] && game[1][1]!=0) ||
(game[1][1]==game[1][0] && game[1][1]==game[1][2] && game[1][1]!=0) ||
(game[0][1]==game[0][0] && game[0][1]==game[0][2] && game[0][1]!=0) ||
(game[1][0]==game[0][0] && game[1][0]==game[2][0] && game[1][0]!=0) ||
(game[1][2]==game[0][2] && game[1][2]==game[2][2] && game[1][2]!=0) ||
(game[2][1]==game[2][0] && game[2][1]==game[2][2] && game[2][1]!=0))
{
return game[x-1][y-1];
}
return 0;
}
int main(void)
{
int x=0,y=0;
int turn=1;
Show(turn,x,y);
while(turn<10)
{
printf("请输入落子位置:\n");
while(1)
{
printf("行号:");
while(!scanf("%d",&x)||x<1||x>3)
{
printf("输入不合法!请重新输入:\n");
printf("行号:");
scanf("%*[^\n]");
scanf("%*c");
}
printf("列号:");
while(!scanf("%d",&y)||y<1||y>3)
{
printf("输入不合法!请重新输入:\n");
printf("列号:");
scanf("%*[^\n]");
scanf("%*c");
}
if(game[x-1][y-1])
{
printf("(%d,%d)处已落子!请另选其他位置:\n",x,y);
continue;
}
break;
}
Show(turn,x,y);
int result=Victory(x,y);
if(result==1)
{
printf("A赢了!\n");
return 0;
}
else if(result==-1)
{
printf("B赢了!\n");
return 0;
}
++turn;
}
printf("和棋!\n");
return 0;
}