//圈叉棋游戏
#include<stdio.h>
int main()
{
char map[3][3]={0};
int row=0,col=0;
int num=0;
char player='O',winner=0;
// printf("***\n***\n***");
///初始化棋盘
for(row=0;row<=2;row++)
{
for(col=0;col<=2;col++)
{
map[row][col]='*';
}
}
printf("***\n***\n***");
for(num=0;num<=8;num++)
{
while(1)
{
printf("请%c下棋",player);
scanf("%d%d",&row,&col);
if(row<1||row>3||col<1||col>3)
{
continue;
}
if(map[row-1][col-1]!='*')
{
continue;
}
break;
}
//把棋子放在选定位置里
map[row-1][col-1]=player;
player^='O'^'X';
//显示棋盘
for(row=0;row<=2;row++)
{
for(col=0;col<=2;col++)
{
printf("%c",map[row][col]);
}
printf("\n");
}
//判断赢家
if(map[0][0]==map[0][1]&&map[0][1]==map[0][2]&&map[0][0]!='*')
{
winner=map[0][0];
break;
}
if(map[1][0]==map[1][1]&&map[1][1]==map[1][2]&map[1][0]!='*')
{
winner=map[1][0];
break;
}
if(map[2][0]==map[2][1]&&map[2][1]==map[2][2]&&map[2][0]!='*')
{
winner=map[2][0];
break;
}
if(map[0][0]==map[1][0]&&map[1][0]==map[2][0]&&map[0][0]!='*')
{
winner=map[0][0];
break;
}
if(map[0][1]==map[1][1]&&map[0][1]==map[2][1]&&map[0][1]!='*')
{
winner=map[0][1];
break;
}
if(map[2][0]==map[2][1]&&map[2][1]==map[2][2]&&map[2][0]!='*')
{
winner=map[2][0];
break;
}
if(map[0][0]==map[1][1]&&map[0][0]==map[2][2]&&map[0][0]!='*')
{
winner=map[0][0];
break;
}
if(map[2][0]==map[1][1]&&map[1][1]==map[0][2]&&map[1][1]!='*')
{
winner=map[1][1];
break;
}
}
if(num<=8)
{
printf("%c赢了",winner);
}
else
{
printf("平局");
}
return 0;
}