1.3 编程实现:布局

下面,我们就用编程来实现这个吉卜赛读心术小游戏。

在程序里,我们绘制了一张1~100的表格,以其为背景。

我们创建3个角色:水晶球、神秘符号、再来一次。

我们为神秘符号角色创建了6个造型,对应6个不同的神秘符号。我们为神秘符号角色自定义一个名为“布局”的自制积木,其作用是在10×10的方格(不包含序号格)中摆上不同的图案。具体地,我们首先选定一个单击水晶球时显示的图案,然后我们在9的倍数的位置放上这个选定的图案,而在不是9的倍数的位置放一个随机选择的图案。“当小绿旗被点击”或接收到“再来一次”消息时,都调用“布局”积木,重新布局。

每次重新布局时,我们都要重新选定最后在水晶球中显示的神秘符号。我们创建变量“选中造型编号”,用于存放被选中的神秘符号的造型编号。我们可以通过下面的代码,将“选中造型编号”设定为1~6的一个随机的造型编号。这样,每次重新玩的时候,最后水晶球出现的神秘符号大概率是不同的。

为了给这100个格子填上不同的神秘符号,我们需要双重循环。我们定义两个变量“行”和“列”来控制具体的位置。循环程序的框架如下:每次一行填完后,都将角色移动到下一行的开始(将x坐标设为每行最左边的坐标,y坐标向下移动25到下一行)。

在循环体内部,我们根据当前的行数和列数,计算出当前位置对应的1~100的数为:(行-1)×10+列。如果这个数是9的倍数,那么就将该位置的符号设定为预先选中的造型,否则,就设定为一个随机的造型。

布局积木的完整定义如下。