#1686. c语言5.25 扫雷游戏

c语言5.25 扫雷游戏

问题描述

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

格式

输入

输出

扫雷地图

样例


  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

提示

数据范围、额外说明、样例说明等等