天天看点

scratch编程——一个列表实现经典扫雷游戏

今天我们来做一款经典小游戏——扫雷

scratch编程——一个列表实现经典扫雷游戏

扫雷的玩法大家都知道,翻开一个格子,格子里也许是地雷也许是数字,如果是数字就表示以这个数字为中心,周边的八个格子里地雷的数量,要通过数字的提示按下所有安全的格子就算胜利!

首先我们画出这个程序唯一的角色,它一共有13个造型:

scratch编程——一个列表实现经典扫雷游戏

然后就开始编程了,首先是整体的布局,我们先用一个名为“地图”的列表来表示屏幕上10*10的格子,在列表里,我们用“0”表示空白,具体如下:

“0”——空白

“1”——1个地雷

“2”——2个地雷

“3”——3个地雷

“4”——4个地雷

“5”——5个地雷

“6”——6个地雷

“7”——7个地雷

“8”——8个地雷

“L”——地雷

“X”——按下的格子

一定要记清楚列表里的字符分别表示什么意思!
           

下面是总程序:

scratch编程——一个列表实现经典扫雷游戏

这是主角色的程序,克隆体的程序最后在看,“当接收到……”的程序下面绿色的运算程序是这样的:

y坐标减去90的差除以20后的绝对值乘10加上x坐标减去-90的差除以20后的绝对值加1

(|(y-90)/20|*10)+(|(x-(-90))/20|+1)

再不清楚就没办法了

然后是绿旗子下的自定义模块"布局",勾选运行时不刷新屏幕!

具体如下:

scratch编程——一个列表实现经典扫雷游戏
scratch编程——一个列表实现经典扫雷游戏

我们理一下程序的逻辑:我们给扫雷的地图表上号,按从上往下,从左往右的方式标号,分别对应列表里的项数。在列表排列好所有的空白后,把地雷(L)埋进去,再从头开始,列表里如果是0(空白)就左上,上,右上,左,右,左下,下,右下的侦测,有几个雷就将原先的空白变为几,完成后再检测下一个。但要注意,边上和角落里的方块需要特殊处理,我们把所有格子分为9块:

scratch编程——一个列表实现经典扫雷游戏

除5以外,其他的全部特殊处理:

1检测 右、下、右下

2检测 左、左下、下、右下、右

3检测 左、下、左下

4检测 上、右上、右、右下、下

5检测 全部

6检测 上、左上、左、左下、下

7检测 上、右上、右

8检测 左、左上、上、右上、右

9检测 上、左上、左

有点复杂,这也是程序为什么这么长的原因。

克隆体的程序就不说了,直接看:

scratch编程——一个列表实现经典扫雷游戏
scratch编程——一个列表实现经典扫雷游戏

完成,有兴趣的话请关注微信公众号:

scratch编程——一个列表实现经典扫雷游戏

继续阅读