设计
game()
{
初始化;
打印;
下前四步
从第五步开始判断输赢
9步没产生输赢是平局
}
代码
int judge(char board[ROW][COL], int row, int col, int p)
{
int x = p / row;
int y = p % row;
if ((board[x][0] == board[x][1] && board[x][0] == board[x][2]) || (board[0][y] == board[1][y] && board[0][y] == board[2][y])) return 1;
if ((x+y)%2)
if (((board[0][0] == board[1][1] && board[2][2] == board[1][1])) || ((board[0][2] == board[1][1] && board[2][0] == board[1][1]))) return 1;
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include "game.h"
void menu()
{
printf("\n....................\n");
printf("......0.exit........\n");
printf("......1.play........\n");
printf("....................\n");
printf("请选择(0/1)>>>");
}
void game()
{
char board[ROW][COL] = { 0 };
InitBoard(board, ROW, COL);
PrintBoard(board, ROW, COL);
PlayerMove(board, ROW, COL);
ComputerMove(board, ROW, COL);
PrintBoard(board, ROW, COL);
PlayerMove(board, ROW, COL);
ComputerMove(board, ROW, COL);
PrintBoard(board, ROW, COL);
int i=5;
while (i)
{
if (i % 2)
{
int c1 = PlayerMove(board, ROW, COL);
PrintBoard(board, ROW, COL);
// 赢了返回1,打印棋盘,输了,什么都不做
if (judge(board, ROW, COL, c1))
{
printf("You win!!!\n");
break;
}
}
else
{
int c2 = ComputerMove(board, ROW, COL);
PrintBoard(board, ROW, COL);
if (judge(board, ROW, COL, c2))
{
printf("Computer win ,fool player.\n");
break;
}
}
i--;
}
if (i == 0)printf("平局\n");
}
void test()
{
int n = 0;
do
{
menu();
scanf("%d", &n);
switch (n)
{
case 0:
{
printf("Exit.\n");
break;
}
case 1:
{
printf("Game strat.\n");
game();
break;
}
default:
{
printf("error,Please input (0/1)\n");
break;
}
}
} while (n);
}
int main()
{
srand((unsigned int)time(NULL));
test();
return 0;
}