#ifndef __CAME_H__#define __GAME_H__#include<stdio.h>#include<time.h>#include<stdlib.h>#include<Windows.h>#define ROW 3#define COL 3
void DisplayShow(char arr[ROW][COL], int row, int col);
void Init(char arr[ROW][COL], int row, int col);
void ComputerMove(char arr[ROW][COL], int row, int col);
void PlayerMove(char arr[ROW][COL], int row, int col);
char Win(char arr[ROW][COL], int row, int col);
#endif
game.c //游戏实现
#include"game.h"void DisplayShow(char arr[ROW][COL], int row, int col) //打印棋盘
{
int i = 0;
for (i = 0; i < row; i++)
{
printf(" %c | %c |%c \n", arr[i][0], arr[i][1], arr[i][2]);
printf("---|---|---\n");
}
}
void Init(char arr[ROW][COL], int row, int col) //初始化棋盘
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col;j++)
{
arr[i][j] = ' ';
}
}
}
void ComputerMove(char arr[ROW][COL], int row, int col) //电脑走
{
//随机数int x = 0,y = 0;
printf("Computer Move>\n");
Sleep(1000);
while (1)
{
x = rand() % row;
y = rand() % col;
if (arr[x][y] == ' ')
{
arr[x][y] = 'X';
break;
}
}
}
void PlayerMove(char arr[ROW][COL], int row, int col) //人走
{
int x = 0, y = 0;
int i = 0, j = 0;
printf("Player Move>\n");
while (1)
{
printf("输入坐标(x,y)>");
scanf("%d,%d", &x, &y);
if (x >= 1 && x <= row &&y >= 1 && y <= col)
{
if (arr[x - 1][y - 1] == ' ')
{
arr[x - 1][y - 1] = '*';
break;
}
else
{
printf("坐标被占用!\n");
}
}
else
{
printf("坐标不合法!\n");
}
}
}
staticint draw(char arr[ROW][COL], int row, int col) //平局判断
{
int i = 0, j = 0;
for (i = 0; i<row; i++)
{
for (j = 0; j<col; j++)
{
if (arr[i][j] == ' ')
return0;
}
}
return1;
}
char Win(char arr[ROW][COL], int row, int col) //判断输赢
{
int i = 0;
//行赢for (i = 0; i < row; i++)
{
if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][1] != ' ')
return arr[i][1];
}
//列赢for (i = 0; i < col; i++)
{
if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[1][i] != ' ')
return arr[0][i];
}
//对角赢if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[0][0] != ' ')
return arr[1][1];
if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[0][0] != ' ')
return arr[1][1];
//平局(棋盘满)if (draw(arr, row, col))
{
return'q';
}
return' ';
}