这是我作为一个初学者第一次尝试搞出来的东西,它不但可以实现三子棋游戏,通过修改#define的定义,还可以实现N子棋游戏。
首先,分析该游戏需要的逻辑
- 作为一个游戏,它首先需要有一个用户菜单,让用户选择开始或选择退出游戏,故需使用一个do while循环(需要在程序的一开始就显示菜单,并且在正常游戏流程结束时再次让玩家选择继续或者退出)来显示菜单并接收用户的输入,以此判断玩家是否玩游戏。
- 在玩家选择退出游戏是跳出循环,若玩家选择开始游戏,则进入游戏函数(game)。
- 作为一个下棋游戏,应该先让其显示棋盘,接着让玩家选择棋子的坐标位置(这里需要一个二维数组),然后电脑方利用头文件stdlib.h头文件、srand以及rand函数来生成一个随机坐标值。
- 利用二维数组将对应的坐标位置填入玩家或电脑的棋子,并在每次填入后打印此时的棋盘供玩家观察。
- 此时已完成了怎么下棋的问题,我自己在做的时候觉得判断输赢是最难的部分,我利用了四个循环来判断连行、连列、左上至右下以及右上至左下。
- 此时游戏基本完成,只需将各个函数按顺序连接起来即可。
以下是代码部分
首先,在头文件中写入
1 |
|
以上均为函数声明,而游戏程序的主函数我也在以下写出
1 |
|
在上边,利用头文件stdlib.h,srand函数,rand函数生成随机数。
menu函数内容:
1 | void menu() |
进行游戏则进入game函数,如下:
1 | void game() |
创建棋盘函数:
1 | void InitBoard(char board[ROW][COL], int row, int col) |
打印棋盘函数:
1 | void PrintBoard(char board[ROW][COL], int row, int col) |
效果如下图
用于接收玩家坐标并下对应棋子的函数:
1 | void Player(char board[ROW][COL], int row, int col) |
电脑输入Computer函数:
1 | void Computer(char board[ROW][COL], int row, int col) |
判断输赢函数:
1 | char IsWin(char board[ROW][COL], int row, int col) |