#include<stdio.h>
int judgewin1(const char array[3][3]) //暴力算法
{
if(array[0][0]=='X' && array[0][1]=='X' && array[0][2]=='X')
return 1;
else if(array[1][0]=='X' && array[1][1]=='X' && array[1][2]=='X')
return 1;
else if(array[2][0]=='X' && array[2][1]=='X' && array[2][2]=='X')
return 1;
else if(array[0][0]=='X' && array[1][0]=='X' && array[2][0]=='X')
return 1;
else if(array[0][1]=='X' && array[1][1]=='X' && array[2][1]=='X')
return 1;
else if(array[0][2]=='X' && array[1][2]=='X' && array[2][2]=='X')
return 1;
else if(array[0][0]=='X' && array[1][1]=='X' && array[2][2]=='X')
return 1;
else if(array[0][2]=='X' && array[1][1]=='X' && array[2][0]=='X')
return 1;
else
return 0;
}
int judgewin2(const char array[3][3])
{
if(array[0][0]=='O' && array[0][1]=='O' && array[0][2]=='O')
return 1;
else if(array[1][0]=='O' && array[1][1]=='O' && array[1][2]=='O')
return 1;
else if(array[2][0]=='O' && array[2][1]=='O' && array[2][2]=='O')
return 1;
else if(array[0][0]=='O' && array[1][0]=='O' && array[2][0]=='O')
return 1;
else if(array[0][1]=='O' && array[1][1]=='O' && array[2][1]=='O')
return 1;
else if(array[0][2]=='O' && array[1][2]=='O' && array[2][2]=='O')
return 1;
else if(array[0][0]=='O' && array[1][1]=='O' && array[2][2]=='O')
return 1;
else if(array[0][2]=='O' && array[1][1]=='O' && array[2][0]=='O')
return 1;
else
return 0;
}
int judgeerror(char array[3][3],int a,int b)
{
if(array[a-1][b-1]=='X' || array[a-1][b-1]=='O' || a>3 || a<1 || b>3 || b<1)
{
return 1;
}
else
{
return 0;
}
}
void dayin(char a[3][3]) //打印函数
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
}
int main()
{
int i,j; //循环变量
int a,b; //用来存储下棋的坐标
char map[3][3]={{' ', ' ',' '},{' ',' ',' '},{' ',' ',' '}};
printf("井字棋游戏开始啦");
dayin(map);
for(i=0;i<9;i++)
{
if(i%2==0)
{
out1:
printf("轮到玩家一下棋,请输入落子的坐标且用空格隔开");
scanf("%d %d",&a,&b);
if(judgeerror(map,a,b)==1)
{
printf("你下错啦小笨蛋!\n");
goto out1;
}
map[a-1][b-1]='X';
dayin(map);
}
else
{
out2:
printf("轮到玩家二下棋,请输入落子的坐标且用空格隔开");
scanf("%d %d",&a,&b);
if(judgeerror(map,a,b)==1)
{
printf("你下错啦小笨蛋!\n");
goto out2;
}
map[a-1][b-1]='O';
dayin(map);
}
if(judgewin1(map)==1)
{
printf("玩家一赢了");
break;
}
if(judgewin2(map)==1)
{
printf("玩家二赢了");
break;
}
}
if(i==9)
printf("这局平局!\n");
return 0;
}
写的跟屎一样,我写博客的目的是为了保存我年少时期写下的烂代码,让将来的自己嘲笑