#include<stdlib.h>
#include<time.h>
#include<stdio.h>
char board[3][3];
void start()
{
printf("-----欢迎进入游戏-----\n");
printf("-----play : 1--------\n");
printf("-----exit : 0--------\n");
printf("----------------------\n");
}
void printfboard()
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf(" %c ", board[i][j]);
if (j < 2)
printf("|");
}
printf("\n");
if (i < 2)
printf("--- --- ---\n");
}
}
void useplay()
{
int x = 0;
int y = 0;
printf("《玩家回合#》\n");
printf("请输入坐标:\n");
while (1)
{
scanf_s("%d %d", &x,&y);
if (board[x - 1][y - 1] != ' ')
{
printf("输入错误,请重新输入");
continue;
}
else if (x - 1 < 3 && y - 1 < 3)
{
board[x-1][y-1] = '#';
break;
}
else printf("输入错误,请重新输入");
}
}
void computerplay()
{
printf("《电脑回合*》\n");
int x = rand()%3;
int y = rand()%3;
while (1)
{
if (board[x][y] != ' ')
{
continue;
}
else
{
board[x][y] = '*';
break;
}
}
}
char judge()
{
char m = 0;
for (int i = 0; i < 3; i++)
{
if (board[i][0]== board[i][1]&& board[i][0]== board[i][2]&& board[i][0]!=' ')
return board[i][0];
else if (board[0][i] == board[1][i] && board[0][i] == board[2][i] && board[0][i] != ' ')
return board[0][i];
else if (board[0][0] == board[1][1] && board[0][0] == board[2][2] && board[0][0] != ' ')
return board[0][0];
else if (board[2][0] == board[1][1] && board[0][2] == board[2][2] && board[1][1] != ' ')
return board[2][0];
else
{
for (int j = 0; j < 3; j++)
{
if (board[i][j] == ' ')
return 'c';
}
}
}
return 'p';
}
int main()
{
srand((unsigned int)time(NULL));
int a = 0;
start();
printf("请选择:\n");
while (1)
{
scanf_s("%d", &a);
if (a == 1)
{
for(int i=0;i<3;i++)
{
for (int j = 0; j < 3; j++)
board[i][j] = ' ';
}
char re = 0;
printfboard();
while(1)
{
useplay();
re = judge();
printfboard();