提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、打印菜单
- 二、棋盘设置
- 二.设置雷
- 三、排查雷
- 五、计算附近雷的个数
- 六、选择是否继续游戏
- 七、设计通关条件
- 总结
前言
今天为大家带来一个C语言经典案例-扫雷。相信大家对扫雷这个游戏多少有所了解,今天就给大家分享我的学习过程和理解,希望对大家编程学习有所帮助。
一、打印菜单
为了我们更好的去理解代码,方便我们的去写代码。所以我们把一个项目分开在3个文件里写。也可以为以后行进多人协同工作,养成良好的编程习惯。
实例:
- test.c 放代码的具体实现
- 扫雷.h 放函数的声明和类型的声明
- 扫雷.c 放函数的定义
// .h 头文件
// .c 源文件
1.设计一个游戏菜单
二、棋盘设置
1.首先我们知道扫雷这个游戏是在一个99的棋盘上进行的,所以我们要先做一个99的棋盘。
2.在我们游戏中可以发现,方格上的数字表示在33的方格中有多少个雷。
3.但是在表格的最外围,只查找了22方格有多少个雷。此时,就会出现越界的情况。所以在设计棋盘时,要设计11*11的棋盘,以防越界。
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
4.初始化棋盘
5.棋盘实际上是一个二维数组,需要创建2个数组,一个是存放雷的位置,一个用来展示。
//需要把雷初始化为’1’,把没有雷设置为‘0’,把其余方格初始化为’*’。
//棋盘的初始化
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set);
//打印棋盘
void DisplayBoard(char board[ROWS][COLS], int row, int col);
void game()
{
char mine[ROWS][COLS] = { 0 };
char show[ROWS][COLS] = { 0 };
InitBoard(mine, ROWS, COLS, ‘0’);
InitBoard(show, ROWS, COLS, ‘*’);
DisplayBoard(show, ROW, COL);
二.设置雷
1.设置雷的数量
//利用自定义函数,方便修改雷的数量。
三、排查雷
五、计算附近雷的个数
检查3*3方格中雷的个数。
六、选择是否继续游戏
七、设计通关条件
1.当9*9的棋盘再去掉10个雷,还有71个坐标要排查,当这71个坐标全部排查后,表示游戏通过。
//win < row * col – EASY_COUNT 表示排查坐标小于71,游戏继续。
//win = row * col – EASY_COUNT 表示71个坐标已全部排查,游戏结束。
总结
以上就是我对扫雷游戏的学习过程和心得,希望可以对大家的学习有所帮助。感谢大家的阅读与支持!