提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、打印菜单
  • 二、棋盘设置
    • 二.设置雷
    • 三、排查雷
    • 五、计算附近雷的个数
    • 六、选择是否继续游戏
    • 七、设计通关条件
  • 总结

前言

今天为大家带来一个C语言经典案例-扫雷。相信大家对扫雷这个游戏多少有所了解,今天就给大家分享我的学习过程和理解,希望对大家编程学习有所帮助。

一、打印菜单

为了我们更好的去理解代码,方便我们的去写代码。所以我们把一个项目分开在3个文件里写。也可以为以后行进多人协同工作,养成良好的编程习惯。
实例:

  1. test.c 放代码的具体实现
  2. 扫雷.h 放函数的声明和类型的声明
  3. 扫雷.c 放函数的定义
    // .h 头文件
    // .c 源文件

1.设计一个游戏菜单

二、棋盘设置

1.首先我们知道扫雷这个游戏是在一个99的棋盘上进行的,所以我们要先做一个99的棋盘。

2.在我们游戏中可以发现,方格上的数字表示在33的方格中有多少个雷。

3.但是在表格的最外围,只查找了2
2方格有多少个雷。此时,就会出现越界的情况。所以在设计棋盘时,要设计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个坐标已全部排查,游戏结束。

总结

以上就是我对扫雷游戏的学习过程和心得,希望可以对大家的学习有所帮助。感谢大家的阅读与支持!