用c语言实现的一个简单扫雷小游戏。
主要需要理解二维数组的使用,数组的范围。 以及不同的函数功能。
想要做一个扫雷游戏,这样的我还不会做
但是做一个这样的可以
但是只用c语言的黑框实现一个还是没问题的。
那就叫简陋版扫雷,简称 《简雷》
那么实现简雷,我考虑用二维数组实现。
用一个二维数组,每一个元素来代表需要确定的不同位置。
一个一个功能的完善。
首先完成游戏菜单界面menu() 用printf直接打印需要给出的选项。
再用scanf检测输出。
然后用switch进行判断输入元素,进入哪一个语句。 1 就进入game() 游戏主体函数。
0是直接break,输入其他则跳转到default。
完成开始菜单后,实现游戏功能。
对二维数组初始化。
初始化之前,我们需要确定棋盘大小,这里确定为9*9.
为了后续修改,以及代码可读性,我将行列分别用define进行定义,ROW,COL
考虑到后续对棋盘 “雷”数量的检查,边界问题,那么给数组添加一个边框。
也就是将数组变为11*11 用ROWS,COLS。
而游戏时展现的界面并不会把答案露出来,所以设置一个“后端数组”board 存放雷的信息,一个“前端数组”mine展示游玩界面。
Init_board()函数对两个数组初始化。board初始化为全0,mine赋值为全*
完成初始化后,我们要看一看是否初始化成功了,以及后续的显示功能。
设计一个显示函数。
而两个数组对应不同棋盘,需要两个显示函数。
由于边框不需要呈现出来,所以输出范围限定在1-9.
显示正常后证明,显示函数没问题了。
设置雷的位置。
扫雷自然需要有雷,这里由于之前我将数组初始化为0,0不为雷,我就定义1为雷。 用循环的方式随机设置雷的位置。
雷设置成功后,调用print_board函数检查是否设置成功。
雷设置成功了,但是不能将雷的信息展示出来,我们就注释掉print_board.
找到雷的函数实现
调用print_mine,呈现游戏界面,提示玩家输入一个坐标。
我们要判断输入的位置是否是雷,以及他的周围有几个雷。我的想法是,以输入坐标为中心的九宫格。 循环的检测是否为1.
循环完毕后就返回到mine数组,显示周围雷个数。
如果是1,则直接结束
如果检测了所有坐标玩,则输出成功。
以上就是所有函数的实现。