#1686. c语言5.25 扫雷游戏
c语言5.25 扫雷游戏
问题描述
随机生成如图5-20所示的9x9含10颗雷的扫雷游戏地图。
扫雷游戏是一款益智类小游戏,其游戏场景就是一个二维矩阵,因此扫雷游戏的
数据很适合使用二维数组进行存储和表示。本例可以定义一个int map[9][9]的二维数组表示游戏地图,其中元素值为0表示该元索周围没有雷,元素值为-1,表示该元素为雷,其余值的元素表示其周围有相应个数的雷。根据以上规则,图5.20所示的扫雷游戏界面对应的数据可以用如图5.21所示的二维数组来存储和表示。
明确了游戏数据的表示后,接下来就是考虑解决问题的算法了。本例难点是如何将10颗雷(值为-1)公平的随机摆放在9x9的二维数组中。一般思路为随机生成一对下
标,将对应的元素值设置为-1,直到满10个雷为止,但是在这个过程中,容易出现随机生成的下标已经生成过的情况,所以这种情况需要重新生成随机的下标,程序效率不高,且算法相对复杂。
格式
输入
无
输出
扫雷地图
样例
1 -1 1 0 1 -1 1 0 0
1 1 1 0 1 1 2 1 1
1 1 0 0 0 0 1 -1 1
-1 1 0 0 0 0 1 1 1
1 1 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1 -1
0 0 0 0 1 1 2 2 2
1 2 2 1 1 -1 2 -1 2
1 -1 -1 1 1 1 2 2 -1
提示
数据范围、额外说明、样例说明等等