今天我们来实现一个简易版的三子棋(井字棋)小游戏,可以生成Release版本发给你的小伙伴玩。
这游戏规则我就不多说啦,很简单,大家都知道的。
先看看最后实现的效果吧
目录
三子棋主体思路
1.我们先创建三个文件:
我们知道三子棋游戏就是需要有一个这样的棋盘来存放棋子,然后我们进行下棋,玩家下了以后电脑下
这样循环,直到有人获胜,或者棋盘满了,游戏则停止。
思路大概就是这样。
三子棋游戏主体的实现
1.游戏菜单的实现
我们需要打印一个简单的游戏菜单,就像我们平时玩游戏也是有菜单的,让玩家选择。
使用do while循环语句与switch 选择语句 实现 菜单的选择
代码实现如下:
menu() { printf("*************************\n"); printf("*********1.play *********\n"); printf("*********0.exit *********\n"); printf("*************************\n"); } test() { int input = 0; do { menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: game(); printf("游戏开始\n"); break; case 0: printf("退出游戏\n"); break; default://如果输入的不是0/1 就提示输入错误 printf("选择错误,请重新选择\n"); break; } } while (input); } int main() { test(); return 0; }
2.游戏棋盘的初始化
我们现在如果需要下棋,当然需要一个空间来存放棋子,
这时候我们就可以想到运用二维数组。
void game()//定义一个game函数用于游戏逻辑的实现
{
//创建个二维数组 用于存放棋子
char Board[ROW][COL];//行列 为了方便以后更改,可以用define定义的常量ROW COL
//初始化棋盘
InitBoard(Board, ROW, COL);
}
创建以后我们进行棋盘的初始化函数的实现(在game.c里),别忘了还需要在game.h文件里进行初始化函数的声明。
//初始化棋盘 把每个位置初始化为空格 void InitBoard(char Board[ROW][COL], int row, int col) //形参名注意别写成大写ROW COL 不然会与宏变量冲突 { int i = 0; for (i = 0; i < row;i++) { int j = 0; for (j = 0; j< col; j++) { Board[i][j] = ' '; } } }
3.打印棋盘
现在如果我们打印棋盘看到的一定是一片空白
就像这样
那如果我们下棋是不能很好的分辨自己应该下的位置。为了避免这样的