要想实现扫雷游戏的实现,首先我们要理解它的逻辑:
当我们要进行扫雷,首先我们要有一块雷区。
我们初步定义这块雷区大小为9x9.
接下来,我们随机向里面放置10个雷:
现在,我们有了棋盘,布置了雷,可以进行排雷了。
那么对于我们排雷有两种情况:
1.我们排到0,即无雷区,便展示周围雷的个数;
2.我们排到1,即有雷区
对于第二种情况,我们踩雷了,即结束游戏。
那么来看第一种情况:这时我们将周围雷的个数打印出来。
比如第一次我们选择坐标(3,4):
从图上我们可以看出在坐标(3,4)的周围只有一个雷,这时候我们在棋盘上打印1。
如何计算周围雷的个数?
当我们要计算(6,3)——第六列第三行这个区域周围雷的信息,最简单的方式就是将周围的数值加起来并且输出,即(5,2)+(6,2)+(7,2)+(5,3)+(7,3)+(5,4)+(6,4)+(7,4)=3;
但这时,这个3就占据了原先0的位置,产生混淆。于是我们需要一个新的棋盘——一个专门显示信息给玩家看的棋盘。
这样完成了我们排雷的基本逻辑。
但是,一个很关键的地方:
在边角我们怎么去计算周围雷的个数呢?
为了方便计算,并且避免溢出,这时候我们就需要两个11x11的棋盘。
(为了方便以及游戏体验,我们将展示图的每个区域放上星号)
大概游戏思路我们已经完成,那么如何用程序实现它呢?
- 创建雷区和展示区
我们可以建立两个11x11大小的数组(为了与星号统一格式,0、1都用字符形式)
这里的Rows和Cols大小都为11: