一共三个文件,观看循序:test.c -> game.h -> game.c
test.c
#include "game.h"
//自己创建的头文件要用""
void menu()
{
printf("*****************************\n");
printf("****** 0. exit ******\n");
printf("****** 1. play ******\n");
printf("*****************************\n");
}
void game()//这里的game是把用的到的函数全放在这里
{
//存储数据用的是二维数组
char board[ROW][COL];
//row和col是通过头文件#include "game.h"来定义的
//char表示这个二维数组board的内容是char类型即字符类型
//是创建一个函数来初始化棋盘,就是给二维数组初始化值
initboard(board, ROW, COL);
//要想把数组初始化,就需要把二维数组传过去,还有它的行数列数
//打印棋盘,其实就是打印二维数组的每个元素
displayboard(board,ROW,COL);
//要想打印数组,也需要把二维数组传过去,还有它的行数列数
char ret = 0;//用来接收游戏状态
while (1)//因为不可能就下一步棋就完了
{
//玩家走一步棋
playermove(board, ROW, COL);//因为玩家或电脑下棋都是要在二维数组所创建的棋盘上下
displayboard(board, ROW, COL);//因为玩家下完了,还有打印输出一下,所以再调一次
ret = win(board, ROW, COL);//win函数对游戏的状态进行判断并返回游戏状态
if (ret != 'c')
{
break;//别忘了,这么代码还在一个while的循环中
}
//玩家下完一步棋就判断一次
//电脑走一步棋
computermove(board, ROW, COL);
displayboard(board, ROW, COL);
//判断输赢,但其实这个函数还有判断出四种结果来
//因为这个游戏有四个状态,
//1.玩家赢,函数返回#
//2.电脑赢,函数返回*
//3.平局,函数返回q
//4.继续游戏,函数返回c
//所以函数的类型是char
// 所以编代码之前要先分析!!!
ret = win(board, ROW, COL);
if (