.如果真 (横向位置 < 0 或 横向位置 > 360 或 纵向位置 < 0 或 纵向位置 > 360)
返回 (假)
.如果真结束
现球位 = (纵向位置 \ 40) × 9 + 横向位置 \ 40 + 1
.如果真 (球位 [现球位] = 0 且 选中球位 = 0) ' 空位且未选中球
返回 (假)
.如果真结束
.如果真 (现球位 = 选中球位)
返回 (假)
.如果真结束
.如果真 (球位 [现球位] > 0) ' 非空位,之前无论是否已有选中,均更改选中球位
播放音乐 (多项选择 (取随机数 (1, 6), #选中1, #选中2, #选中3, #选中4, #选中5, #选中6), )
.如果真 (选中球位 > 0)
画球形 (选中球位, 球位 [选中球位], 1)
.如果真结束
选中球位 = 现球位
球形状态 = 取随机数 (2, 6)
画球形 (现球位, 球位 [现球位], 球形状态)
时钟选中动画.时钟周期 = 180 ' 开始球位选中动画
返回 (假)
.如果真结束
' 剩下一种情况:现球位为空位但之前已选中球。需要判断是否能够将所选中的球移动到现球位
.如果真 (判断球位连通性 (选中球位, 现球位, 球位数组) = 假)
播放音乐 (#无效球位, )
返回 (假)
.如果真结束
' 现在可以移动选中球
时钟选中动画.时钟周期 = 0
.如果真 (取数组成员数 (球位数组) > 4)
播放音乐 (多项选择 (取随机数 (1, 6), #移动1, #移动2, #移动3, #移动4, #移动5, #移动6), )
.如果真结束
画球位移动动画 (球位数组)
球位 [现球位] = 球位 [选中球位]
连续赋值 (0, 球位 [选中球位], 选中球位)
' 现在判断是否可以消除
清除数组 (球位数组)
.如果真 (判断是否可消除 (现球位, 球位数组) = 假)
.如果真 (画随机后继球 () = 假) ' 画不了新球就是游戏结束
显示游戏结束动画 ()
返回 (假)
.如果真结束
画球形 (现球位, 球位 [现球位], 1)
生成随机后继球 (真)
返回 (假)
.如果真结束
' 可以消除,现在开始显示消球动画
播放音乐 (多项选择 (取随机数 (1, 6), #消除1, #消除2, #消除3, #消除4, #消除5, #消除6), )
数组排序 (球位数组, )
现球位 = 0 ' 用于去除被重复计算的球位
.计次循环首 (取数组成员数 (球位数组), 变量)
.如果真 (球位数组 [变量] = 现球位) ' 已排序过,去除连续重复球位
到循环尾 ()
.如果真结束
现球位 = 球位数组 [变量] ' 记录当前不重复球位
加入成员 (临时数组, 现球位)
.计次循环尾 ()
画球位消除动画 (临时数组)
.计次循环首 (取数组成员数 (临时数组), 变量) ' 清除已消除球位球色
球位 [临时数组 [变量]] = 0
.计次循环尾 ()
' 开始加分
播放音乐 (#加分, )
分数 = 分数 + (取数组成员数 (临时数组) - 5) × 5 + 10
画分数标签 (分数, 标签分数)
上一篇 adb一键连接模拟器工具