1.首先是设计main函数,在里面写入测试函数,首先实现这个游戏,需要一个菜单。在菜单中显示,如果输入1就开始游戏,0就退出游戏,我将这段输出写在menu()函数中。
2.在test()函数中就是写入各个选择,用来实现menu.
3.如果选择1那么就进行游戏。我写入game()函数。
4.在game()函数中,我写入各个函数用于对棋盘进行一些操作,例如棋盘初始化、打印棋盘、设置雷以及排除雷。
4.1棋盘初始化
一开始将数组所有值设置为0,如果后期设置雷的话,就将雷设置为1.但是在排雷的过程中,如果某一个坐标不是雷就需要显示以他为中心九宫格内有几个雷,那么就会与雷这个数字1有冲突。于是就利用两个棋盘,并且使用字符‘0’和字符‘1’。一个用来设置雷,另一个用来显示雷的信息,就是在扫雷的过程中将已知的信息写入第二个棋盘中。
因为最后在控制台显示的只是第二个棋盘信息,所以他会被初始化为‘*’,而第一个棋盘是用来设置雷的非雷,即‘0’和‘1’。所以初始值也是一个变量,在Init函数中,我使用set这个作为初始值这个变量。
4.2打印棋盘
这个就是简单使用两个for循环,因为是一个二维数组。但是在扫雷过程过数坐标是一件很麻烦的事,所以我在这个棋盘的第一行和第一列写入了对应的数字。这个需要考虑到棋盘是从哪一个坐标开始的。
4.3设置雷
需要在棋盘上随机设置特定数字的雷,这个就立马想到使用rand这个函数。然后使用循环就可以实现随机布置10个雷。但是需要考虑到随机性,也就是说如果第一次和第二次随机的坐标的同一个坐标,就会浪费掉一次循环的机会,所以不是简单的循环10次。于是我使用到了while循