大家好,这是一篇关于我写扫雷基础版的一个过程,写下来分享给大家。
扫雷游戏我相信大家一定不陌生,这是在一些电脑中自带的游戏。点击游戏页面的小格,只有两种情况,一种是没有点到雷继续筛选,直到全部筛选完游戏胜利;另一种是点到雷游戏结束,也是一个不错的休闲小游戏。
目录
1.扫雷游戏分析和设计
1.1扫雷游戏功能说明
1.2游戏的分析和设计
1.2.1数据结构分析
1.2.2文件结构设计
2.扫雷游戏的代码实现
1.扫雷游戏分析和设计
1.1扫雷游戏功能说明
(1)使用控制台实现经典游戏扫雷
(2)游戏通过菜单实现继续玩还是退出游戏
(3)扫雷的棋盘是9*9格子
(4)默认随机布置10个雷
(5)可以排查雷
1’如果位置不是雷,就显示周围有几个雷
2’如果是雷,就结束游戏
3’把所有非雷格子找出来就游戏胜利
游戏界面
1.2游戏的分析和设计
1.2.1数据结构分析
首先扫雷过程中,储存雷和排查雷的信息都需要储存,所以需要数据结构来储存信息,在上文中提及是9*9的游戏难度,所以这里创建两个9*9的数组来储存这两种信息。
空棋盘
如果是雷就存放‘1’,如果不是雷就存放‘0’
布置雷的棋盘
当我们排查坐标(4,6)的时候,访问周围8个坐标,统计周围雷的个数为1。当我们排查坐标(9,4)的时候,访问下面3个位置时,就会越界;为了防止越界这种情况,可以将数组扩大一圈,使扩大的部分初始化为‘0’,这样既不会越界,也不会影响周围雷的统计,所以创建数组时应该扩大为11*11的二维数组。
储存雷的信息讲完了,就到了存储排查雷时的信息了。应该做到排查雷时,对储存雷的信息没有任何影响,玩游戏过程中更不可能把存储雷信息的二维数组打印出来,所以应该再创建一个11*11的二维数组来储存排查雷的信息,并将其初始化为‘*’来区分。定义储存雷信息的二维数组为mine,储存排查雷的数组为show。
mine show
对应的数组应该是
1.2.2文件结构设计
由于代码和定义对我来说比较多,同时也为了在写代码过程中更加清晰明了,所以使用多文件对函数声明和定义。
2.扫雷游戏的代码实现
test.c
game.h
game.c
//注意定义函数时需要定义的数组为11*11的大数组,但在操作对象为中间9*9的部分,所以在传参时一定注意不要弄错了
到这扫雷基础版就已经结束了,在后续学习中,我会不断完善和提高它的难度。
看到这,如果大家觉得还行的就点点赞吧。
请批评指正。