【扫雷游戏】

一、首先简单逻辑构建:

1·建立头文件和源文件

【扫雷游戏】_第1张图片
game.h 是指:游戏相关的函数申明
game.c 是指:游戏相关的函数实现。
test.c 是指:游戏相关的逻辑

2、基本逻辑/思路:

【扫雷游戏】_第2张图片

【扫雷游戏】_第3张图片

二、game分析

1、布置雷(随机)
2、扫雷

这里以简单的扫雷做分析(9*9个格子)

【扫雷游戏】_第4张图片
如果你点出来是炸弹,说明你失败了,如果你点击格子,显示出来是一个数字,说明它周围有怎么多个雷:
【扫雷游戏】_第5张图片
点击出来是1,说明周围8个格子有一个是雷。

1、布置雷分析

当我们布置雷位置信息时,我们用坐标,即需要用到二维数组,假设我们以0表示安全,1表示该位置是雷,可是这时你会返现,格子里的数字是指它周围雷的数量,如果用1表示雷的话,就会与表示周围有多少雷的数字重合,就会不容易区分。

因此,我们可以采用其他,表示雷,比如: # 表示无雷,* 表示有雷,数字表示周围雷的个数,可是这样搞,信息过多,复杂。

【扫雷游戏】_第6张图片

所以,我们可以这样设置,布置两个数组,一个是放雷的信息,另一个是放排查雷的信息:
【扫雷游戏】_第7张图片
但是当我们统计边缘一列 / 一行时,会发现有越界的现象,因此我们写代码时(9 * 9个格子)可以写成11*11个格子,最后的一行和一列主要是为了防止越界,不放任何东西。我们在排查雷的信息时,还没有排查的位置我们可以放 * 表示,所以我们的两个数组都是字符数组。

三、写代码

不是雷的位置放 ‘ 0 ’;
是雷的位置放 ‘ 1 ’;
没有排查到雷的位置放 ‘ * ’。

1、先打印两个数组

【扫雷游戏】_第8张图片
【扫雷游戏】_第9张图片
上面这张图片,不要忘记在最前面几排还要加上#include"game.h"(我没有截到)

【扫雷游戏】_第10张图片
【扫雷游戏】_第11张图片

2、布置雷(SetMine)

【扫雷游戏】_第12张图片

【扫雷游戏】_第13张图片

【扫雷游戏】_第14张图片

【扫雷游戏】_第15张图片
每次布置的雷的位置是随机的。

3、排查雷(FindMine)

【扫雷游戏】_第16张图片

【扫雷游戏】_第17张图片
【扫雷游戏】_第18张图片

四、最后的代码:

【扫雷游戏】_第19张图片
【扫雷游戏】_第20张图片
【扫雷游戏】_第21张图片

各位加油,不要放弃,以我的水平,我觉得这个挺难的(。•ˇ‸ˇ•。)
【扫雷游戏】_第22张图片

你可能感兴趣的:(游戏,c语言)