相信兄弟们都玩过扫雷,下面我来教大家用C语言实现简单的扫雷。
还是一样我们先来理一下思路:
首先开始是一个大的正方形里面有n*n的小格其中有一些小格是雷,然后我们选择一个小格如果它是雷那我们就输了如果不是雷那它会给你周围八个小开格中雷的个数,如果周围没有雷那就会展开赢的条件是找出所有的雷。
根据以上描述我们来理一下要解决的问题:
1,如何放置雷,查找雷。
2,怎么将雷的信息与界面的大正方形联系起来。
3,怎么计算雷的个数并将它展开。
首先我们还是老规矩先用创建三个文件:
test.c:用来放游戏主体逻辑
game.c:用来放逻辑的实现
game.h:用来放头文件
1,进入游戏的逻辑实现(其中框住的部分是引用game.h中的头文件 ,让代码更有条理)
以上是进入游戏的逻辑效果如下
2,游戏主体逻辑的建立我们在进入游戏这里加入一个函数 game()用来实现游戏的主体逻辑
首先我们来理一下游戏的具体步骤
出现游戏界面——布置雷——玩家选择坐标——判断是否是雷——(是雷)输掉游戏——(不是雷)判断周围有多少雷——玩家是否发现雷需要标记——再循环直到找到所有的雷。
然后我们一步一步地来实现,首先要解决第一一个问题我们怎么才能在一个界面上存储两个信息(雷的位置和玩家选择的坐标)我们可以用两个数组来搞定一个数组来存储雷的位置一个数组用来存储玩家选择的信息,所以要创建两个数组,再给数组初始化(这里用‘#’表示初识界面用‘ ’来表示已经找过雷的坐标用‘*’表示玩家的标记)我们将数组分别赋值为‘#’,‘0’,用#表示玩家选择的坐标用0表示雷的信息。 并构造一个9*9的正方形来当做游戏界面(因为扫雷的界面是9*9位了方便我们判断角和边的雷的个数我们把数组设为11*11的)。
数组赋值
界面初始化
3,布置雷
雷的布置是随机的所以我们可以让电脑随机生成数来表示雷的坐标并用1来表示雷的位置但要符合要求(1,坐标在9*9正方形内2,坐标不能重复)基于以上条件
(我们还能用界面初始化函数来查看雷的个数和位置)
4,玩家循环找雷先建立一个循环让玩家可以一直找雷知道输了或赢了
判断输入函数
判断输入是否正确有没有出界和有没有重复输入
判断有无雷函数
标记函数
分为三部分1,功能选择2,输入标记3,取消标记。
1,
2, 3,
判断输赢
以上就是所有扫雷的实现,当然还有不足:比如说没有实现周围没有雷会连续炸开。
完整代码如下,希望对兄弟们有帮助:
test.c game.h game.c
如有什么问题或建议欢迎大家提出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)