按键精灵弹出输入框怎样做出跟图片延时提示框一样的效果,延时时间假如4秒,要

查看: 2309|回复: 11
改造易语言自带 搞怪碰碰球 自己玩的上瘾
阅读权限30
结帖率: (2/2)
是否带模块:
本帖最后由 科学奇迹 于
00:00 编辑
有语音,不知道你们能不能用记分有点复杂,不知道你们能不能明白
还有自带原版,不知道盗没盗版
&&窗口程序集名保 留&&保 留备 注游戏窗口程序集&&&变量名类 型数组备 注 球位整数型819×9大小后继球整数型0开局成员5 局中成员3选中球位整数型&&球形状态整数型保留中间动画状态分数整数型&&名次整数型&&控件被激活逻辑型音效控制用机读文本机读文本&&配置文件名文本型&&__启动窗口_创建完毕&&变量整数型&&文本分数文本型&&新榜内容文本型&&常用词语文本型&3机读文本.设置语音库 (“VW Lily”)球形状态 = 2计次循环首 (3, 变量)&&' 画后继球画板纵分隔线后继球画板.画直线 ( (变量 - 1) × 40, 0, (变量 - 1) × 40, 后继球画板.高度)计次循环尾 ()后继球画板.画直线 (0, 0, 后继球画板.宽度, 0)配置文件名 = 取运行目录 () + “\gaoguai.ini”&&' 更新荣誉榜如果 (文件是否存在 (配置文件名) = 假)计次循环首 (10, 变量)文本分数 = 到文本 (多项选择 (变量, , , 510, 470, 135, 100, 55, 20))文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数荣誉榜 [变量] = 文本分数 + “搞怪”新榜内容 = 新榜内容 + 荣誉榜 [变量] + #换行符 计次循环尾 ()写到文件 (配置文件名, 到字节集 (新榜内容))复制数组 (荣誉榜, 分割文本 (取字节集数据 (读入文件 (配置文件名), #文本型 ), #换行符, 10))最高分名字.标题 = 文本替换 (荣誉榜 [1], 1, 7, )画分数 (到数值 (取文本左边 (荣誉榜 [1], 7)), 标签最高分)_开始游戏_被选择 ()常用词语 [1] = “白球”常用词语 [2] = “魔法球”常用词语 [3] = “白色球”加入成员 (常用词语, “红球”)加入成员 (常用词语, “蓝球”)加入成员 (常用词语, “绿球”)加入成员 (常用词语, “黄球”)加入成员 (常用词语, “紫球”)语音识别.加入常用 (常用词语)_开始游戏_被选择&&变量&&&横坐标整数型&&纵坐标整数型&&已走步数.标题 = “-1”消球总数.标题 = “0”如果真 (取数组成员数 (后继球) ≠ 0)播放音乐 ( #控件 ≈, )禁止重画 ()时钟选中动画.时钟周期 = 0分数 = 0画分数 (分数, 分数标签)重定义数组 (球位, 假, 81)计次循环首 (81, 变量)&&' 绘制棋盘格底色二维球位到坐标 (变量, 横坐标, 纵坐标)连续赋值 (选择 (变量 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板游戏区.刷子颜色, 画板游戏区.画笔颜色)画板游戏区.画矩形 (横坐标, 纵坐标, 横坐标 + 40, 纵坐标 + 40)计次循环尾 ()画板游戏区.画笔颜色 = #深灰 计次循环首 (9, 变量)&&' 画分隔线画板游戏区.画直线 ( (变量 - 1) × 40, 0, (变量 - 1) × 40, 画板游戏区.高度)画板游戏区.画直线 (0, (变量 - 1) × 40, 画板游戏区.宽度, (变量 - 1) × 40)计次循环尾 ()重定义数组 (后继球, 假, 5)&&' 开局随机加五个球生成后继球 (假)加球 ()重定义数组 (后继球, 假, 3)生成后继球 (真)选中球位 = 0允许重画 ()_画板游戏区_鼠标左键被按下逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&现球位整数型&&球位数组整数型&0临时数组整数型&0变量整数型&&. ' 如果真 (横向位置 < 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)生成后继球 (真)返回 (假) ' 可以消除,现在开始显示消球动画数组排序 (球位数组, )现球位 = 0&&' 用于去除被重复计算的球位计次循环首 (取数组成员数 (球位数组), 变量)如果真 (球位数组 [变量] = 现球位)&&' 已排序过,去除连续重复球位到循环尾 ()现球位 = 球位数组 [变量]&&' 记录当前不重复球位加入成员 (临时数组, 现球位)计次循环尾 ()消除球位 (临时数组)计次循环首 (取数组成员数 (临时数组), 变量)&&' 清除已消除球位球色球位 [临时数组 [变量]] = 0计次循环尾 ()加分 (取数组成员数 (临时数组))返回 (假)加分&&球数整数型&&&得分整数型&&额外球整数型&&排名信息文本型&&一举文本型&&前名次整数型√&额外球 = 球数 - 5得分 = 额外球 × 额外球 × 5 + 10分数 = 分数 + 得分计次循环首 (10, 名次)如果真 (分数 > 到数值 (荣誉榜 [名次]))跳出循环 ()计次循环尾 ()置随机数种子 ()如果真 (前名次 = 0)前名次 = 11如果 (名次 = 前名次)判断 (额外球 = 0)判断 (名次 = 11)排名信息 = “如果你能再得” + 到文本 (到数值 (取文本左边 (荣誉榜 [10], 7)) - 分数 + 10) + “分,就能进[url=]荣誉榜[/url]了!”判断 (名次 = 1)排名信息 = “你依然第是一名!欲穷千里目,更上一层楼。”排名信息 = “如果你能再得” + 到文本 (到数值 (取文本左边 (荣誉榜 [名次 - 1], 7)) - 分数 + 10) + “分,就能战胜第” + 到文本 (名次 - 1) + “名。”排名信息 = “加” + 到文本 (得分) + “分!”如果真 (前名次 - 名次 > 1)一举 = “一举”判断 (名次 = 10)排名信息 = “恭喜你,进了[url=]荣誉榜[/url]!”判断 (名次 = 1)排名信息 = “你真了不起!” + 一举 + “拿下了第一名。”排名信息 = 一举 + “打入前” + 到文本 (名次) + “名”前名次 = 名次机读文本.文本到语音 (2, 排名信息, , )如果 (额外球 = 0)提示框.弹出提示框 (_启动窗口.左边 + 分数标签.左边 + 分数标签.宽度, _启动窗口.顶边 + 分数标签.顶边, “ [url=]” + 玩家名称 + “![/url][hr]本次你一共消去5个球,只得到了基础分 (10分)& && && & [url=][color=] (游戏说明)[/color][/url][hr]” + 排名信息, -1, )提示框.弹出提示框 (_启动窗口.左边 + 分数标签.左边 + 分数标签.宽度, _启动窗口.顶边 + 分数标签.顶边, “ [url=]” + 玩家名称 + “![/url][hr]本次你一共消去” + 到文本 (球数) + “个球:5个基础球加10分” + 到文本 (球数 - 5) + “个额外球加” + 到文本 (额外球 × 额外球 × 5) + “分” + “ (” + 到文本 (额外球 × 额外球 × 5) + “=” + 到文本 (额外球) + “×” + 到文本 (额外球) + “×5)一共得了” + 到文本 (得分) + “分。& && && & [url=] (游戏说明)[/url][hr]” + 排名信息, -1, )播放音乐 ( #加分, )画分数 (分数, 分数标签)消球总数.标题 = 到文本 (到数值 (消球总数.标题) + 球数)_提示框_自定义超链接被单击&&标识文本文本型&&&判断 (标识文本 = “荣誉榜”)_查看荣誉榜_被选择 ()判断 (标识文本 = “游戏说明”)_游戏说明_被选择 ()判断 (标识文本 = “玩家名称”)_游戏说明_被选择 ()载入 (更名窗口, , 真)生成后继球&&画板显示逻辑型&&&变量整数型&&图片号整数型&&置随机数种子 ()计次循环首 (取数组成员数 (后继球), 变量)&&' 开局成员5,局中成员3.因此此处取数组成员数如果 (到数值 (编辑框1.内容) > 0 且 到数值 (编辑框1.内容) < 9)后继球 [变量] = 到数值 (编辑框1.内容)编辑框1.内容 = “”后继球 [变量] = 取随机数 (1, 33)如果真 (后继球 [变量] ≠ 1)&&' 1=白球后继球 [变量] = 取随机数 (2, 8)如果真 (画板显示)画板动画缓冲.画笔颜色 = #黑色 画板动画缓冲.刷子颜色 = #黑色 画板动画缓冲.画矩形 (0, 0, 40, 40)图片号 = 载入图片 (取球 (后继球 [变量], 0))画板动画缓冲.画图片 (图片号, 0, 0, , , - #品红 )画板动画缓冲.复制 (0, 0, 39, 39, 后继球画板, (变量 - 1) × 40 + 1, 1, )卸载图片 (图片号)计次循环尾 ()二维球位到坐标&&球位号整数型&&&横坐标整数型√&&纵坐标整数型√&&横坐标 = ( (球位号 - 1) % 9) × 40纵坐标 = ( (球位号 - 1) \ 9) × 40坐标到二维球位&&球位号整数型&&&横坐标整数型√&&纵坐标整数型√&&横坐标 = (球位号 - 1) % 9 + 1纵坐标 = (球位号 - 1) \ 9 + 1二维到一维球位整数型&横坐标整数型&&&纵坐标整数型&&&如果真 (横坐标 ≤ 0 或 横坐标 > 9 或 纵坐标 ≤ 0 或 纵坐标 > 9)返回 (-1)返回 ( (纵坐标 - 1) × 9 + 横坐标)寻找路径逻辑型&起始球位整数型&&&终止球位整数型&&&连通路径整数型&&√父球位整数型&&访问标志整数型&810代表未访问过,访问后保存此球位的父球位,-1代表为起始球位空位数组整数型&0当前球位整数型&&横坐标整数型&&纵坐标整数型&&临时坐标整数型&&变量整数型&& ' 因迷宫区域仅9×9大小,因此采用广度优先算法寻找最短路径,不会造成队列溢出. ' 清除数组 (连通路径)坐标到二维球位 (起始球位, 横坐标, 纵坐标)访问标志 [起始球位] = -1父球位 = 起始球位判断循环首 (真)计次循环首 (4, 变量)&&' 分别检查四周的球位临时坐标 = 多项选择 (变量, 横坐标 - 1, 横坐标 + 1, 纵坐标 + 1, 纵坐标 - 1)如果 (变量 ≤ 2)当前球位 = 二维到一维球位 (临时坐标, 纵坐标)当前球位 = 二维到一维球位 (横坐标, 临时坐标)如果真 (当前球位 = -1)到循环尾 ()如果真 (当前球位 = 终止球位)&&' 连通插入成员 (连通路径, 1, 终止球位)判断循环首 (访问标志 [父球位] ≠ -1)&&' 开始向根节点倒退,获得最短路径插入成员 (连通路径, 1, 父球位)父球位 = 访问标志 [父球位]判断循环尾 ()插入成员 (连通路径, 1, 起始球位)返回 (真)如果真 (球位 [当前球位] = 0 且 访问标志 [当前球位] = 0)&&' 当前球位是空位且未访问过加入成员 (空位数组, 当前球位)访问标志 [当前球位] = 父球位计次循环尾 ()如果真 (球位 [选中球位] = 1)&&' wjp插入成员 (连通路径, 1, 终止球位)插入成员 (连通路径, 1, 起始球位)返回 (真)如果真 (取数组成员数 (空位数组) = 0)返回 (假)父球位 = 空位数组 [1]坐标到二维球位 (空位数组 [1], 横坐标, 纵坐标)删除成员 (空位数组, 1, 1)判断循环尾 ()返回 (假)画球形&&球位号整数型&&&球色整数型&&&状态整数型&&&横坐标整数型&&纵坐标整数型&&图片号整数型&&如果真 (球位号 ≠ 0)二维球位到坐标 (球位号, 横坐标, 纵坐标)如果 (球色 = 0)&&' 球色=0代表仅清除当前球位连续赋值 (选择 (球位号 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板游戏区.刷子颜色, 画板游戏区.画笔颜色)画板游戏区.画矩形 (横坐标 + 1, 纵坐标 + 1, 横坐标 + 40, 纵坐标 + 40)&&' 画底色,清除当前球位返回 ()连续赋值 (选择 (球位号 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)画板动画缓冲.画矩形 (0, 0, 40, 40)&&' 画底色图片号 = 载入图片 (取球 (球色, 状态))画板动画缓冲.画图片 (图片号, 0, 0, 40, 40, - #品红 )画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )卸载图片 (图片号)移动球位&&移动路径整数型&&√变量整数型&&变量循环首 (2, 取数组成员数 (移动路径), 1, 变量)画球形 (移动路径 [变量 - 1], 0, 0)画球形 (移动路径 [变量], 球位 [移动路径 [1]], 球形状态)延时 (50)变量循环尾 ()判断可否消球逻辑型&球位号整数型&&&可消球位整数型&&√横坐标整数型&&纵坐标整数型&&当前横坐标整数型&&当前纵坐标整数型&&当前球位整数型&&同色球位整数型&0方整数型&&向整数型&&全白球逻辑型&&球色整数型√&如果真 (球位 [球位号] = 1)&&' 如果是白球,就用另外7种颜色都尝试一次计次循环首 (7, 球色)球位 [球位号] = 球色 + 1判断可否消球 (球位号, 可消球位)&&' 白球同时可能在多组中代表不同颜色计次循环尾 ()球位 [球位号] = 1如果 (取数组成员数 (可消球位) > 0)返回 (真)返回 (假)坐标到二维球位 (球位号, 横坐标, 纵坐标)计次循环首 (4, 向)&&' 横向,竖向,左上右下,左下右上清除数组 (同色球位)加入成员 (同色球位, 球位号)计次循环首 (2, 方)当前横坐标 = 选择 (向 = 2, 横坐标, 多项选择 (方, 横坐标 - 1, 横坐标 + 1))当前纵坐标 = 多项选择 (向, 纵坐标, 多项选择 (方, 纵坐标 - 1, 纵坐标 + 1), 多项选择 (方, 纵坐标 - 1, 纵坐标 + 1), 多项选择 (方, 纵坐标 + 1, 纵坐标 - 1))当前球位 = 二维到一维球位 (当前横坐标, 当前纵坐标)判断循环首 (当前球位 ≠ -1)如果真 (球位号 = 0 或 当前球位 = 0)返回 (假)如果真 (球位 [当前球位] ≠ 球位 [球位号] 且 球位 [当前球位] ≠ 1)跳出循环 ()如果 (方 = 1)&&' 两个方向一组,为保证球位顺序便于动画显示,分别向前插入和向后加入插入成员 (同色球位, 1, 当前球位)加入成员 (同色球位, 当前球位)当前横坐标 = 选择 (向 = 2, 横坐标, 多项选择 (方, 当前横坐标 - 1, 当前横坐标 + 1))当前纵坐标 = 多项选择 (向, 当前纵坐标, 多项选择 (方, 当前纵坐标 - 1, 当前纵坐标 + 1), 多项选择 (方, 当前纵坐标 - 1, 当前纵坐标 + 1), 多项选择 (方, 当前纵坐标 + 1, 当前纵坐标 - 1))当前球位 = 二维到一维球位 (当前横坐标, 当前纵坐标)判断循环尾 ()计次循环尾 ()如果真 (取数组成员数 (同色球位) ≥ 5)加入成员 (可消球位, 同色球位)&&' 没有直接跳出,考虑同时消除两组以上情况发生计次循环尾 ()如果 (取数组成员数 (可消球位) > 0)返回 (真)返回 (假)消除球位&&可消球位整数型&&√变量整数型&&次数整数型&&播放音乐 (多项选择 (取随机数 (1, 6), #消除1, #消除2, #消除3, #消除4, #消除5, #消除6 ), )计次循环首 (6, 次数)计次循环首 (取数组成员数 (可消球位), 变量)画球形 (可消球位 [变量], 0, 0)计次循环尾 ()延时 (50)如果真 (次数 ≥ 6)&&' 最后一次仅清除跳出循环 ()计次循环首 (取数组成员数 (可消球位), 变量)画球形 (可消球位 [变量], 球位 [可消球位 [变量]], 7)计次循环尾 ()延时 (100)计次循环尾 ()球数总计.标题 = 到文本 (到数值 (球数总计.标题) - 取数组成员数 (可消球位))已走步数.标题 = 到文本 (到数值 (已走步数.标题) + 1)画分数&&要画的分数整数型&&&标签标签&&&文本分数文本型&&结果文本文本型&&变量整数型&&文本分数 = 到文本 (要画的分数)文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数计次循环首 (7, 变量)结果文本 = 结果文本 + 取文本中间 (文本分数, 变量, 1) + “ ”计次循环尾 ()标签.标题 = 取文本左边 (结果文本, 13)加球逻辑型&返回假代表画后继球失败,即球位已满空位整数型&0随机数整数型&&可消球位整数型&0位置整数型&&次数整数型&&序号整数型&&图片号整数型&&横坐标整数型&&纵坐标整数型&&临时数组整数型&0时钟选中动画.时钟周期 = 0如果真 (取数组成员数 (后继球) = 3)&&' 开局不播放声音特效播放音乐 ( #加入新球, )计次循环首 (81, 位置)如果真 (球位 [位置] = 0)加入成员 (空位, 位置)计次循环尾 ()置随机数种子 ()计次循环首 (取数组成员数 (后继球), 位置)如果真 (取数组成员数 (空位) = 0)&&' 球位已满返回 (假)随机数 = 取随机数 (1, 取数组成员数 (空位))如果真 (取数组成员数 (后继球) = 3)&&' 开局不画动画特效二维球位到坐标 (空位 [随机数], 横坐标, 纵坐标)连续赋值 (选择 (空位 [随机数] % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)画板动画缓冲.画矩形 (0, 0, 40, 40)图片号 = 载入图片 (取球 (后继球 [位置], 0))计次循环首 (3, 次数)&&' 球形变大动画画板动画缓冲.画图片 (图片号, 多项选择 (次数, 16, 12, 8), 多项选择 (次数, 16, 12, 8), 多项选择 (次数, 8, 16, 24), 多项选择 (次数, 8, 16, 24), - #品红 )画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )延时 (30)计次循环尾 ()卸载图片 (图片号)画球形 (空位 [随机数], 后继球 [位置], 1)球位 [空位 [随机数]] = 后继球 [位置]清除数组 (可消球位)清除数组 (临时数组)如果真 (判断可否消球 (空位 [随机数], 可消球位))播放音乐 (多项选择 (取随机数 (1, 6), #消除1, #消除2, #消除3, #消除4, #消除5, #消除6 ), )数组排序 (可消球位, )次数 = 0&&' 开始去除重复计算球位计次循环首 (取数组成员数 (可消球位), 序号)如果真 (可消球位 [序号] = 次数)到循环尾 ()次数 = 可消球位 [序号]加入成员 (临时数组, 次数)计次循环尾 ()消除球位 (临时数组)计次循环首 (取数组成员数 (临时数组), 序号)&&' 清除球位球位 [临时数组 [序号]] = 0加入成员 (空位, 临时数组 [序号])计次循环尾 ()加分 (取数组成员数 (临时数组))删除成员 (空位, 随机数, 1)计次循环尾 ()球数总计.标题 = 到文本 (81 - 取数组成员数 (空位))已走步数.标题 = 到文本 (到数值 (已走步数.标题) + 1)如果真 (取数组成员数 (空位) = 0)返回 (假)返回 (真)_图形按钮关闭_被单击&&_启动窗口.可视 = 假播放音乐 ( #控件 ≈, )载入 (退出确认窗口, _启动窗口, 真)_图形按钮最小化_被单击&&播放音乐 ( #控件 ≈, )位置 = 2_时钟选中动画_周期事件&&偏移量整数型√&次数整数型√&图片号整数型&&横坐标整数型&&纵坐标整数型&&偏移量 = 偏移量 + 1如果真 (偏移量 ≥ 5)偏移量 = 1连续赋值 (选择 (选中球位 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)画板动画缓冲.画矩形 (0, 0, 40, 40)&&' 画底色 ' 减少眼珠活动次数,并避免眼珠从左跳到右,或从上跳到下如果真 (次数 % 5 = 0 或 球形状态 = 1)&&' 闭眼时(状态=1)立刻睁开判断 (球形状态 = 2)球形状态 = 取随机数 (1, 5)判断 (球形状态 = 3)球形状态 = 多项选择 (取随机数 (1, 4), 3, 2, 5, 6)判断 (球形状态 = 4)球形状态 = 多项选择 (取随机数 (1, 4), 4, 2, 5, 6)判断 (球形状态 = 5 或 球形状态 = 6)球形状态 = 多项选择 (取随机数 (1, 4), 5, 2, 3, 4)球形状态 = 2次数 = 次数 + 1图片号 = 载入图片 (取球 (球位 [选中球位], 球形状态))画板动画缓冲.画图片 (图片号, 0, 多项选择 (偏移量, -2, 0, 2, 0), , , - #品红 )卸载图片 (图片号)二维球位到坐标 (选中球位, 横坐标, 纵坐标)画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )游戏结束&&新榜内容文本型&&文本分数文本型&&位数整数型&&结果文本文本型&&标记组件标签&&文本数组文本型&0清除数组 (后继球)时钟选中动画.时钟周期 = 0文本分数 = 到文本 (分数)文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数如果 (名次 ≠ 11)载入 (入榜窗口, _启动窗口, 真)插入成员 (荣誉榜, 名次, 文本分数 + 玩家名称)&&' 入榜窗口中必定调用获取玩家名称子程序最高分名字.标题 = 文本替换 (荣誉榜 [1], 1, 7, )画分数 (到数值 (取文本左边 (荣誉榜 [1], 7)), 标签最高分)计次循环首 (10, 名次)新榜内容 = 新榜内容 + 荣誉榜 [名次] + #换行符 计次循环尾 ()写到文件 (配置文件名, 到字节集 (新榜内容))&&' 每次上榜都及时写入配置文件载入 (窗口荣誉榜, _启动窗口, 真)播放音乐 ( #无效球位, )载入 (失败窗口, _启动窗口, 真)写配置项 (取运行目录 () + “/搞怪配置.ini”, 玩家名称, “游戏次数”, 到文本 (到数值 (读配置项 (取运行目录 () + “/搞怪配置.ini”, 玩家名称, “游戏次数”, )) + 1))_开始游戏_被选择 ()取球字节集&球色整数型&&&状态整数型&&&如果真 (球色 = 0)返回 ({&&})判断 (状态 = 0)&&' 原始球形返回 (多项选择 (球色, #白球原始, #红球原始, #蓝球原始, #黄球原始, #绿球原始, #紫球原始, #褐球原始, #青球原始 ))判断 (状态 = 1)&&' 静默球形返回 (多项选择 (球色, #白球闭眼, #红球闭眼, #蓝球闭眼, #黄球闭眼, #绿球闭眼, #紫球闭眼, #褐球闭眼, #青球闭眼 ))判断 (状态 = 2)&&' 中看球形返回 (多项选择 (球色, #白球中看, #红球中看, #蓝球中看, #黄球中看, #绿球中看, #紫球中看, #褐球中看, #青球中看 ))判断 (状态 = 3)&&' 左看球形返回 (多项选择 (球色, #白球左看, #红球左看, #蓝球左看, #黄球左看, #绿球左看, #紫球左看, #褐球左看, #青球左看 ))判断 (状态 = 4)&&' 右看球形返回 (多项选择 (球色, #白球右看, #红球右看, #蓝球右看, #黄球右看, #绿球右看, #紫球右看, #褐球右看, #青球右看 ))判断 (状态 = 5)&&' 上看球形返回 (多项选择 (球色, #白球上看, #红球上看, #蓝球上看, #黄球上看, #绿球上看, #紫球上看, #褐球上看, #青球上看 ))判断 (状态 = 6)&&' 下看球形返回 (多项选择 (球色, #白球下看, #红球下看, #蓝球下看, #黄球下看, #绿球下看, #紫球下看, #褐球下看, #青球下看 ))判断 (状态 = 7)&&' 消除球形返回 (多项选择 (球色, #白球消除, #红球消除, #蓝球消除, #黄球消除, #绿球消除, #紫球消除, #褐球消除, #青球消除 ))返回 ({&&})_图形按钮最小化_鼠标位置被移动逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&如果真 (控件被激活 = 假)控件被激活 = 真播放音乐 ( #控件激活, )_图形按钮关闭_鼠标位置被移动逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&如果真 (控件被激活 = 假)控件被激活 = 真播放音乐 ( #控件激活, )__启动窗口_鼠标位置被移动逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&如果真 (玩家名称标签.文本颜色 ≠ #蓝色 )玩家名称标签.文本颜色 = #蓝色 如果真 (控件被激活 ≠ 假)控件被激活 = 假_查看荣誉榜_被选择&&播放音乐 ( #控件 ≈, )载入 (窗口荣誉榜, _启动窗口, 真)_退出游戏_被选择&&_图形按钮关闭_被单击 ()_游戏说明_被选择&&播放音乐 ( #控件 ≈, )载入 (游戏说明窗口, _启动窗口, 真)__启动窗口_鼠标右键被放开逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&弹出菜单 (菜单, 取鼠标水平位置 () - 15, 取鼠标垂直位置 () - 10)菜单.选中 = 假_玩家名称标签_鼠标左键被按下逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&播放音乐 ( #控件 ≈, )载入 (更名窗口, , 真)_玩家名称标签_鼠标位置被移动逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&如果真 (玩家名称标签.文本颜色 ≠ #红色 )玩家名称标签.文本颜色 = #红色 机读文本.文本到语音 (0, “你好,” + 玩家名称, , )_语音识别_识别到语音&&识别文本文本型&&&判断 (寻找文本 (识别文本, “红”, , 假) ≠ -1)编辑框1.内容 = “2”提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “红球吗?,待会给你。”, -1, 真)判断 (寻找文本 (识别文本, “蓝”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “蓝球吗?,待会给你。”, -1, 真)编辑框1.内容 = “3”判断 (寻找文本 (识别文本, “黄”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “黄球吗?,待会给你。”, -1, 真)编辑框1.内容 = “4”判断 (寻找文本 (识别文本, “绿”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “绿球吗?,待会给你。”, -1, 真)编辑框1.内容 = “5”判断 (寻找文本 (识别文本, “紫”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “紫球吗?,待会给你。”, -1, 真)编辑框1.内容 = “6”判断 (寻找文本 (识别文本, “褐”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “褐球吗?,待会给你。”, -1, 真)编辑框1.内容 = “7”判断 (寻找文本 (识别文本, “青”, , 假) ≠ -1)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “青球吗?,待会给你。”, -1, 真)编辑框1.内容 = “8”如果真 (编辑框1.内容 = “”)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “对不起,我没听懂。”, -1, 假)语音识别.释放 ()_后继球画板_鼠标左键被按下逻辑型&横向位置整数型&&&纵向位置整数型&&&功能键状态整数型&&&已出球数整数型√&如果真 (已出球数 < 到数值 (已走步数.标题) ÷ 3)提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “亲,你可以大声说喊出你想要的球!”, -1, 假)语音识别.创建 (0, 1)已出球数 = 已出球数 + 1ESpeechEngine文本语音转换支持库
iext扩展界面支持库一
iext5扩展界面支持库五
.版本 2
.支持库 ESpeechEngine
.支持库 iext
.支持库 iext5
.程序集 游戏窗口程序集
.程序集变量 球位, 整数型, , &81&, 9×9大小
.程序集变量 后继球, 整数型, , &0&, 开局成员5 局中成员3
.程序集变量 选中球位, 整数型
.程序集变量 球形状态, 整数型, , , 保留中间动画状态
.程序集变量 分数, 整数型
.程序集变量 名次, 整数型
.程序集变量 控件被激活, 逻辑型, , , 音效控制用
.程序集变量 机读文本, 机读文本
.程序集变量 配置文件名, 文本型
.子程序 __启动窗口_创建完毕
.局部变量 变量, 整数型
.局部变量 文本分数, 文本型
.局部变量 新榜内容, 文本型
.局部变量 常用词语, 文本型, , &3&
机读文本.设置语音库 (“VW Lily”)
球形状态 = 2
.计次循环首 (3, 变量)&&' 画后继球画板纵分隔线
& & 后继球画板.画直线 ((变量 - 1) × 40, 0, (变量 - 1) × 40, 后继球画板.高度)
.计次循环尾 ()
后继球画板.画直线 (0, 0, 后继球画板.宽度, 0)
配置文件名 = 取运行目录 () + “\gaoguai.ini”&&' 更新荣誉榜
.如果 (文件是否存在 (配置文件名) = 假)
& & .计次循环首 (10, 变量)
& && &&&文本分数 = 到文本 (多项选择 (变量, , , 510, 470, 135, 100, 55, 20))
& && &&&文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数
& && &&&荣誉榜 [变量] = 文本分数 + “搞怪”
& && &&&新榜内容 = 新榜内容 + 荣誉榜 [变量] + #换行符
& & .计次循环尾 ()
& & 写到文件 (配置文件名, 到字节集 (新榜内容))
& & 复制数组 (荣誉榜, 分割文本 (取字节集数据 (读入文件 (配置文件名), #文本型), #换行符, 10))
最高分名字.标题 = 文本替换 (荣誉榜 [1], 1, 7, )
画分数 (到数值 (取文本左边 (荣誉榜 [1], 7)), 标签最高分)
_开始游戏_被选择 ()
常用词语 [1] = “白球”
常用词语 [2] = “魔法球”
常用词语 [3] = “白色球”
加入成员 (常用词语, “红球”)
加入成员 (常用词语, “蓝球”)
加入成员 (常用词语, “绿球”)
加入成员 (常用词语, “黄球”)
加入成员 (常用词语, “紫球”)
语音识别.加入常用 (常用词语)
.子程序 _开始游戏_被选择
.局部变量 变量
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
已走步数.标题 = “-1”
消球总数.标题 = “0”
.如果真 (取数组成员数 (后继球) ≠ 0)
& & 播放音乐 (#控件选中, )
.如果真结束
禁止重画 ()
时钟选中动画.时钟周期 = 0
画分数 (分数, 分数标签)
重定义数组 (球位, 假, 81)
.计次循环首 (81, 变量)&&' 绘制棋盘格底色
& & 二维球位到坐标 (变量, 横坐标, 纵坐标)
& & 连续赋值 (选择 (变量 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板游戏区.刷子颜色, 画板游戏区.画笔颜色)
& & 画板游戏区.画矩形 (横坐标, 纵坐标, 横坐标 + 40, 纵坐标 + 40)
.计次循环尾 ()
画板游戏区.画笔颜色 = #深灰
.计次循环首 (9, 变量)&&' 画分隔线
& & 画板游戏区.画直线 ((变量 - 1) × 40, 0, (变量 - 1) × 40, 画板游戏区.高度)
& & 画板游戏区.画直线 (0, (变量 - 1) × 40, 画板游戏区.宽度, (变量 - 1) × 40)
.计次循环尾 ()
重定义数组 (后继球, 假, 5)&&' 开局随机加五个球
生成后继球 (假)
重定义数组 (后继球, 假, 3)
生成后继球 (真)
选中球位 = 0
允许重画 ()
.子程序 _画板游戏区_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 现球位, 整数型
.局部变量 球位数组, 整数型, , &0&
.局部变量 临时数组, 整数型, , &0&
.局部变量 变量, 整数型
.' 如果真 (横向位置 < 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)
& & 生成后继球 (真)
& & 返回 (假)
.如果真结束
' 可以消除,现在开始显示消球动画
数组排序 (球位数组, )
现球位 = 0&&' 用于去除被重复计算的球位
.计次循环首 (取数组成员数 (球位数组), 变量)
& & .如果真 (球位数组 [变量] = 现球位)&&' 已排序过,去除连续重复球位
& && &&&到循环尾 ()
& & .如果真结束
& & 现球位 = 球位数组 [变量]&&' 记录当前不重复球位
& & 加入成员 (临时数组, 现球位)
.计次循环尾 ()
消除球位 (临时数组)
.计次循环首 (取数组成员数 (临时数组), 变量)&&' 清除已消除球位球色
& & 球位 [临时数组 [变量]] = 0
.计次循环尾 ()
加分 (取数组成员数 (临时数组))
.子程序 加分
.参数 球数, 整数型
.局部变量 得分, 整数型
.局部变量 额外球, 整数型
.局部变量 排名信息, 文本型
.局部变量 一举, 文本型
.局部变量 前名次, 整数型, 静态
额外球 = 球数 - 5
得分 = 额外球 × 额外球 × 5 + 10
分数 = 分数 + 得分
.计次循环首 (10, 名次)
& & .如果真 (分数 > 到数值 (荣誉榜 [名次]))
& && &&&跳出循环 ()
& & .如果真结束
.计次循环尾 ()
置随机数种子 ()
.如果真 (前名次 = 0)
& & 前名次 = 11
.如果真结束
.如果 (名次 = 前名次)
& & .判断开始 (额外球 = 0)
& && &&&.判断开始 (名次 = 11)
& && && && &排名信息 = “如果你能再得” + 到文本 (到数值 (取文本左边 (荣誉榜 [10], 7)) - 分数 + 10) + “分,就能进[url=]荣誉榜[/url]了!”
& && &&&.判断 (名次 = 1)
& && && && &排名信息 = “你依然第是一名!
欲穷千里目,更上一层楼。”
& && &&&.默认
& && && && &排名信息 = “如果你能再得” + 到文本 (到数值 (取文本左边 (荣誉榜 [名次 - 1], 7)) - 分数 + 10) + “分,就能战胜第” + 到文本 (名次 - 1) + “名。”
& && &&&.判断结束
& && &&&排名信息 = “加” + 到文本 (得分) + “分!”
& & .判断结束
& & .如果真 (前名次 - 名次 > 1)
& && &&&一举 = “一举”
& & .如果真结束
& & .判断开始 (名次 = 10)
& && &&&排名信息 = “恭喜你,进了[url=]荣誉榜[/url]!”
& & .判断 (名次 = 1)
& && &&&排名信息 = “你真了不起!” + 一举 + “拿下了第一名。”
& && &&&排名信息 = 一举 + “打入前” + 到文本 (名次) + “名”
& & .判断结束
& & 前名次 = 名次
机读文本.文本到语音 (2, 排名信息, , )
.如果 (额外球 = 0)
& & 提示框.弹出提示框 (_启动窗口.左边 + 分数标签.左边 + 分数标签.宽度, _启动窗口.顶边 + 分数标签.顶边, “ [url=]” + 玩家名称 + “![/url]
本次你一共消去5个球,
只得到了基础分(10分)& && && & [url=](游戏说明)[/url]
” + 排名信息, -1, )
& & 提示框.弹出提示框 (_启动窗口.左边 + 分数标签.左边 + 分数标签.宽度, _启动窗口.顶边 + 分数标签.顶边, “ [url=]” + 玩家名称 + “![/url]
本次你一共消去” + 到文本 (球数) + “个球:
5个基础球加10分
” + 到文本 (球数 - 5) + “个额外球加” + 到文本 (额外球 × 额外球 × 5) + “分” + “(” + 到文本 (额外球 × 额外球 × 5) + “=” + 到文本 (额外球) + “×” + 到文本 (额外球) + “×5)
一共得了” + 到文本 (得分) + “分。& && && & [url=](游戏说明)[/url]
” + 排名信息, -1, )
播放音乐 (#加分, )
画分数 (分数, 分数标签)
消球总数.标题 = 到文本 (到数值 (消球总数.标题) + 球数)
.子程序 _提示框_自定义超链接被单击
.参数 标识文本, 文本型
.判断开始 (标识文本 = “荣誉榜”)
& & _查看荣誉榜_被选择 ()
.判断 (标识文本 = “游戏说明”)
& & _游戏说明_被选择 ()
.判断 (标识文本 = “玩家名称”)
& & _游戏说明_被选择 ()
& & 载入 (更名窗口, , 真)
.子程序 生成后继球
.参数 画板显示, 逻辑型
.局部变量 变量, 整数型
.局部变量 图片号, 整数型
置随机数种子 ()
.计次循环首 (取数组成员数 (后继球), 变量)&&' 开局成员5,局中成员3.因此此处取数组成员数
& & .如果 (到数值 (编辑框1.内容) > 0 且 到数值 (编辑框1.内容) < 9)
& && &&&后继球 [变量] = 到数值 (编辑框1.内容)
& && &&&编辑框1.内容 = “”
& && &&&后继球 [变量] = 取随机数 (1, 33)
& && &&&.如果真 (后继球 [变量] ≠ 1)&&' 1=白球
& && && && &后继球 [变量] = 取随机数 (2, 8)
& && &&&.如果真结束
& & .如果结束
& & .如果真 (画板显示)
& && &&&画板动画缓冲.画笔颜色 = #黑色
& && &&&画板动画缓冲.刷子颜色 = #黑色
& && &&&画板动画缓冲.画矩形 (0, 0, 40, 40)
& && &&&图片号 = 载入图片 (取球 (后继球 [变量], 0))
& && &&&画板动画缓冲.画图片 (图片号, 0, 0, , , -#品红)
& && &&&画板动画缓冲.复制 (0, 0, 39, 39, 后继球画板, (变量 - 1) × 40 + 1, 1, )
& && &&&卸载图片 (图片号)
& & .如果真结束
.计次循环尾 ()
.子程序 二维球位到坐标
.参数 球位号, 整数型
.参数 横坐标, 整数型, 参考
.参数 纵坐标, 整数型, 参考
横坐标 = ((球位号 - 1) % 9) × 40
纵坐标 = ((球位号 - 1) \ 9) × 40
.子程序 坐标到二维球位
.参数 球位号, 整数型
.参数 横坐标, 整数型, 参考
.参数 纵坐标, 整数型, 参考
横坐标 = (球位号 - 1) % 9 + 1
纵坐标 = (球位号 - 1) \ 9 + 1
.子程序 二维到一维球位, 整数型
.参数 横坐标, 整数型
.参数 纵坐标, 整数型
.如果真 (横坐标 ≤ 0 或 横坐标 > 9 或 纵坐标 ≤ 0 或 纵坐标 > 9)
& & 返回 (-1)
.如果真结束
返回 ((纵坐标 - 1) × 9 + 横坐标)
.子程序 寻找路径, 逻辑型
.参数 起始球位, 整数型
.参数 终止球位, 整数型
.参数 连通路径, 整数型, 数组
.局部变量 父球位, 整数型
.局部变量 访问标志, 整数型, , &81&, 0代表未访问过,访问后保存此球位的父球位,-1代表为起始球位
.局部变量 空位数组, 整数型, , &0&
.局部变量 当前球位, 整数型
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
.局部变量 临时坐标, 整数型
.局部变量 变量, 整数型
' 因迷宫区域仅9×9大小,因此采用广度优先算法寻找最短路径,不会造成队列溢出.
' 清除数组 (连通路径)
坐标到二维球位 (起始球位, 横坐标, 纵坐标)
访问标志 [起始球位] = -1
父球位 = 起始球位
.判断循环首 (真)
& & .计次循环首 (4, 变量)&&' 分别检查四周的球位
& && &&&临时坐标 = 多项选择 (变量, 横坐标 - 1, 横坐标 + 1, 纵坐标 + 1, 纵坐标 - 1)
& && &&&.如果 (变量 ≤ 2)
& && && && &当前球位 = 二维到一维球位 (临时坐标, 纵坐标)
& && &&&.否则
& && && && &当前球位 = 二维到一维球位 (横坐标, 临时坐标)
& && &&&.如果结束
& && &&&.如果真 (当前球位 = -1)
& && && && &到循环尾 ()
& && &&&.如果真结束
& && &&&.如果真 (当前球位 = 终止球位)&&' 连通
& && && && &插入成员 (连通路径, 1, 终止球位)
& && && && &.判断循环首 (访问标志 [父球位] ≠ -1)&&' 开始向根节点倒退,获得最短路径
& && && && && & 插入成员 (连通路径, 1, 父球位)
& && && && && & 父球位 = 访问标志 [父球位]
& && && && &.判断循环尾 ()
& && && && &插入成员 (连通路径, 1, 起始球位)
& && && && &返回 (真)
& && &&&.如果真结束
& && &&&.如果真 (球位 [当前球位] = 0 且 访问标志 [当前球位] = 0)&&' 当前球位是空位且未访问过
& && && && &加入成员 (空位数组, 当前球位)
& && && && &访问标志 [当前球位] = 父球位
& && &&&.如果真结束
& & .计次循环尾 ()
& & .如果真 (球位 [选中球位] = 1)&&' wjp
& && &&&插入成员 (连通路径, 1, 终止球位)
& && &&&插入成员 (连通路径, 1, 起始球位)
& && &&&返回 (真)
& & .如果真结束
& & .如果真 (取数组成员数 (空位数组) = 0)
& && &&&返回 (假)
& & .如果真结束
& & 父球位 = 空位数组 [1]
& & 坐标到二维球位 (空位数组 [1], 横坐标, 纵坐标)
& & 删除成员 (空位数组, 1, 1)
.判断循环尾 ()
.子程序 画球形
.参数 球位号, 整数型
.参数 球色, 整数型
.参数 状态, 整数型
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
.局部变量 图片号, 整数型
.如果真 (球位号 ≠ 0)
& & 二维球位到坐标 (球位号, 横坐标, 纵坐标)
& & .如果 (球色 = 0)&&' 球色=0代表仅清除当前球位
& && &&&连续赋值 (选择 (球位号 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板游戏区.刷子颜色, 画板游戏区.画笔颜色)
& && &&&画板游戏区.画矩形 (横坐标 + 1, 纵坐标 + 1, 横坐标 + 40, 纵坐标 + 40)&&' 画底色,清除当前球位
& && &&&返回 ()
& && &&&连续赋值 (选择 (球位号 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)
& && &&&画板动画缓冲.画矩形 (0, 0, 40, 40)&&' 画底色
& & .如果结束
& & 图片号 = 载入图片 (取球 (球色, 状态))
& & 画板动画缓冲.画图片 (图片号, 0, 0, 40, 40, -#品红)
& & 画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )
& & 卸载图片 (图片号)
.如果真结束
.子程序 移动球位
.参数 移动路径, 整数型, 数组
.局部变量 变量, 整数型
.变量循环首 (2, 取数组成员数 (移动路径), 1, 变量)
& & 画球形 (移动路径 [变量 - 1], 0, 0)
& & 画球形 (移动路径 [变量], 球位 [移动路径 [1]], 球形状态)
& & 延时 (50)
.变量循环尾 ()
.子程序 判断可否消球, 逻辑型
.参数 球位号, 整数型
.参数 可消球位, 整数型, 数组
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
.局部变量 当前横坐标, 整数型
.局部变量 当前纵坐标, 整数型
.局部变量 当前球位, 整数型
.局部变量 同色球位, 整数型, , &0&
.局部变量 方, 整数型
.局部变量 向, 整数型
.局部变量 全白球, 逻辑型
.局部变量 球色, 整数型, 静态
.如果真 (球位 [球位号] = 1)&&' 如果是白球,就用另外7种颜色都尝试一次
& & .计次循环首 (7, 球色)
& && &&&球位 [球位号] = 球色 + 1
& && &&&判断可否消球 (球位号, 可消球位)&&' 白球同时可能在多组中代表不同颜色
& & .计次循环尾 ()
& & 球位 [球位号] = 1
& & .如果 (取数组成员数 (可消球位) > 0)
& && &&&返回 (真)
& && &&&返回 (假)
& & .如果结束
.如果真结束
坐标到二维球位 (球位号, 横坐标, 纵坐标)
.计次循环首 (4, 向)&&' 横向,竖向,左上右下,左下右上
& & 清除数组 (同色球位)
& & 加入成员 (同色球位, 球位号)
& & .计次循环首 (2, 方)
& && &&&当前横坐标 = 选择 (向 = 2, 横坐标, 多项选择 (方, 横坐标 - 1, 横坐标 + 1))
& && &&&当前纵坐标 = 多项选择 (向, 纵坐标, 多项选择 (方, 纵坐标 - 1, 纵坐标 + 1), 多项选择 (方, 纵坐标 - 1, 纵坐标 + 1), 多项选择 (方, 纵坐标 + 1, 纵坐标 - 1))
& && &&&当前球位 = 二维到一维球位 (当前横坐标, 当前纵坐标)
& && &&&.判断循环首 (当前球位 ≠ -1)
& && && && &.如果真 (球位号 = 0 或 当前球位 = 0)
& && && && && & 返回 (假)
& && && && &.如果真结束
& && && && &.如果真 (球位 [当前球位] ≠ 球位 [球位号] 且 球位 [当前球位] ≠ 1)
& && && && && & 跳出循环 ()
& && && && &.如果真结束
& && && && &.如果 (方 = 1)&&' 两个方向一组,为保证球位顺序便于动画显示,分别向前插入和向后加入
& && && && && & 插入成员 (同色球位, 1, 当前球位)
& && && && &.否则
& && && && && & 加入成员 (同色球位, 当前球位)
& && && && &.如果结束
& && && && &当前横坐标 = 选择 (向 = 2, 横坐标, 多项选择 (方, 当前横坐标 - 1, 当前横坐标 + 1))
& && && && &当前纵坐标 = 多项选择 (向, 当前纵坐标, 多项选择 (方, 当前纵坐标 - 1, 当前纵坐标 + 1), 多项选择 (方, 当前纵坐标 - 1, 当前纵坐标 + 1), 多项选择 (方, 当前纵坐标 + 1, 当前纵坐标 - 1))
& && && && &当前球位 = 二维到一维球位 (当前横坐标, 当前纵坐标)
& && &&&.判断循环尾 ()
& & .计次循环尾 ()
& & .如果真 (取数组成员数 (同色球位) ≥ 5)
& && &&&加入成员 (可消球位, 同色球位)&&' 没有直接跳出,考虑同时消除两组以上情况发生
& & .如果真结束
.计次循环尾 ()
.如果 (取数组成员数 (可消球位) > 0)
& & 返回 (真)
& & 返回 (假)
.子程序 消除球位
.参数 可消球位, 整数型, 数组
.局部变量 变量, 整数型
.局部变量 次数, 整数型
播放音乐 (多项选择 (取随机数 (1, 6), #消除1, #消除2, #消除3, #消除4, #消除5, #消除6), )
.计次循环首 (6, 次数)
& & .计次循环首 (取数组成员数 (可消球位), 变量)
& && &&&画球形 (可消球位 [变量], 0, 0)
& & .计次循环尾 ()
& & 延时 (50)
& & .如果真 (次数 ≥ 6)&&' 最后一次仅清除
& && &&&跳出循环 ()
& & .如果真结束
& & .计次循环首 (取数组成员数 (可消球位), 变量)
& && &&&画球形 (可消球位 [变量], 球位 [可消球位 [变量]], 7)
& & .计次循环尾 ()
& & 延时 (100)
.计次循环尾 ()
球数总计.标题 = 到文本 (到数值 (球数总计.标题) - 取数组成员数 (可消球位))
已走步数.标题 = 到文本 (到数值 (已走步数.标题) + 1)
.子程序 画分数
.参数 要画的分数, 整数型
.参数 标签, 标签
.局部变量 文本分数, 文本型
.局部变量 结果文本, 文本型
.局部变量 变量, 整数型
文本分数 = 到文本 (要画的分数)
文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数
.计次循环首 (7, 变量)
& & 结果文本 = 结果文本 + 取文本中间 (文本分数, 变量, 1) + “ ”
.计次循环尾 ()
标签.标题 = 取文本左边 (结果文本, 13)
.子程序 加球, 逻辑型, , 返回假代表画后继球失败,即球位已满
.局部变量 空位, 整数型, , &0&
.局部变量 随机数, 整数型
.局部变量 可消球位, 整数型, , &0&
.局部变量 位置, 整数型
.局部变量 次数, 整数型
.局部变量 序号, 整数型
.局部变量 图片号, 整数型
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
.局部变量 临时数组, 整数型, , &0&
时钟选中动画.时钟周期 = 0
.如果真 (取数组成员数 (后继球) = 3)&&' 开局不播放声音特效
& & 播放音乐 (#加入新球, )
.如果真结束
.计次循环首 (81, 位置)
& & .如果真 (球位 [位置] = 0)
& && &&&加入成员 (空位, 位置)
& & .如果真结束
.计次循环尾 ()
置随机数种子 ()
.计次循环首 (取数组成员数 (后继球), 位置)
& & .如果真 (取数组成员数 (空位) = 0)&&' 球位已满
& && &&&返回 (假)
& & .如果真结束
& & 随机数 = 取随机数 (1, 取数组成员数 (空位))
& & .如果真 (取数组成员数 (后继球) = 3)&&' 开局不画动画特效
& && &&&二维球位到坐标 (空位 [随机数], 横坐标, 纵坐标)
& && &&&连续赋值 (选择 (空位 [随机数] % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)
& && &&&画板动画缓冲.画矩形 (0, 0, 40, 40)
& && &&&图片号 = 载入图片 (取球 (后继球 [位置], 0))
& && &&&.计次循环首 (3, 次数)&&' 球形变大动画
& && && && &画板动画缓冲.画图片 (图片号, 多项选择 (次数, 16, 12, 8), 多项选择 (次数, 16, 12, 8), 多项选择 (次数, 8, 16, 24), 多项选择 (次数, 8, 16, 24), -#品红)
& && && && &画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )
& && && && &延时 (30)
& && &&&.计次循环尾 ()
& && &&&卸载图片 (图片号)
& & .如果真结束
& & 画球形 (空位 [随机数], 后继球 [位置], 1)
& & 球位 [空位 [随机数]] = 后继球 [位置]
& & 清除数组 (可消球位)
& & 清除数组 (临时数组)
& & .如果真 (判断可否消球 (空位 [随机数], 可消球位))
& && &&&播放音乐 (多项选择 (取随机数 (1, 6), #消除1, #消除2, #消除3, #消除4, #消除5, #消除6), )
& && &&&数组排序 (可消球位, )
& && &&&次数 = 0&&' 开始去除重复计算球位
& && &&&.计次循环首 (取数组成员数 (可消球位), 序号)
& && && && &.如果真 (可消球位 [序号] = 次数)
& && && && && & 到循环尾 ()
& && && && &.如果真结束
& && && && &次数 = 可消球位 [序号]
& && && && &加入成员 (临时数组, 次数)
& && &&&.计次循环尾 ()
& && &&&消除球位 (临时数组)
& && &&&.计次循环首 (取数组成员数 (临时数组), 序号)&&' 清除球位
& && && && &球位 [临时数组 [序号]] = 0
& && && && &加入成员 (空位, 临时数组 [序号])
& && &&&.计次循环尾 ()
& && &&&加分 (取数组成员数 (临时数组))
& & .如果真结束
& & 删除成员 (空位, 随机数, 1)
.计次循环尾 ()
球数总计.标题 = 到文本 (81 - 取数组成员数 (空位))
已走步数.标题 = 到文本 (到数值 (已走步数.标题) + 1)
.如果真 (取数组成员数 (空位) = 0)
& & 返回 (假)
.如果真结束
.子程序 _图形按钮关闭_被单击
_启动窗口.可视 = 假
播放音乐 (#控件选中, )
载入 (退出确认窗口, _启动窗口, 真)
.子程序 _图形按钮最小化_被单击
播放音乐 (#控件选中, )
.子程序 _时钟选中动画_周期事件
.局部变量 偏移量, 整数型, 静态
.局部变量 次数, 整数型, 静态
.局部变量 图片号, 整数型
.局部变量 横坐标, 整数型
.局部变量 纵坐标, 整数型
偏移量 = 偏移量 + 1
.如果真 (偏移量 ≥ 5)
& & 偏移量 = 1
.如果真结束
连续赋值 (选择 (选中球位 % 2 = 0, #黑色, 取颜色值 (33, 32, 33)), 画板动画缓冲.刷子颜色, 画板动画缓冲.画笔颜色)
画板动画缓冲.画矩形 (0, 0, 40, 40)&&' 画底色
' 减少眼珠活动次数,并避免眼珠从左跳到右,或从上跳到下
.如果真 (次数 % 5 = 0 或 球形状态 = 1)&&' 闭眼时(状态=1)立刻睁开
& & .判断开始 (球形状态 = 2)
& && &&&球形状态 = 取随机数 (1, 5)
& & .判断 (球形状态 = 3)
& && &&&球形状态 = 多项选择 (取随机数 (1, 4), 3, 2, 5, 6)
& & .判断 (球形状态 = 4)
& && &&&球形状态 = 多项选择 (取随机数 (1, 4), 4, 2, 5, 6)
& & .判断 (球形状态 = 5 或 球形状态 = 6)
& && &&&球形状态 = 多项选择 (取随机数 (1, 4), 5, 2, 3, 4)
& && &&&球形状态 = 2
& & .判断结束
.如果真结束
次数 = 次数 + 1
图片号 = 载入图片 (取球 (球位 [选中球位], 球形状态))
画板动画缓冲.画图片 (图片号, 0, 多项选择 (偏移量, -2, 0, 2, 0), , , -#品红)
卸载图片 (图片号)
二维球位到坐标 (选中球位, 横坐标, 纵坐标)
画板动画缓冲.复制 (0, 0, 40, 40, 画板游戏区, 横坐标 + 1, 纵坐标 + 1, )
.子程序 游戏结束
.局部变量 新榜内容, 文本型
.局部变量 文本分数, 文本型
.局部变量 位数, 整数型
.局部变量 结果文本, 文本型
.局部变量 标记组件, 标签
.局部变量 文本数组, 文本型, , &0&
清除数组 (后继球)
时钟选中动画.时钟周期 = 0
文本分数 = 到文本 (分数)
文本分数 = 取重复文本 (7 - 取文本长度 (文本分数), “0”) + 文本分数
.如果 (名次 ≠ 11)
& & 载入 (入榜窗口, _启动窗口, 真)
& & 插入成员 (荣誉榜, 名次, 文本分数 + 玩家名称)&&' 入榜窗口中必定调用获取玩家名称子程序
& & 最高分名字.标题 = 文本替换 (荣誉榜 [1], 1, 7, )
& & 画分数 (到数值 (取文本左边 (荣誉榜 [1], 7)), 标签最高分)
& & .计次循环首 (10, 名次)
& && &&&新榜内容 = 新榜内容 + 荣誉榜 [名次] + #换行符
& & .计次循环尾 ()
& & 写到文件 (配置文件名, 到字节集 (新榜内容))&&' 每次上榜都及时写入配置文件
& & 载入 (窗口荣誉榜, _启动窗口, 真)
& & 播放音乐 (#无效球位, )
& & 载入 (失败窗口, _启动窗口, 真)
写配置项 (取运行目录 () + “/搞怪配置.ini”, 玩家名称, “游戏次数”, 到文本 (到数值 (读配置项 (取运行目录 () + “/搞怪配置.ini”, 玩家名称, “游戏次数”, )) + 1))
_开始游戏_被选择 ()
.子程序 取球, 字节集
.参数 球色, 整数型
.参数 状态, 整数型
.如果真 (球色 = 0)
& & 返回 ({&&})
.如果真结束
.判断开始 (状态 = 0)&&' 原始球形
& & 返回 (多项选择 (球色, #白球原始, #红球原始, #蓝球原始, #黄球原始, #绿球原始, #紫球原始, #褐球原始, #青球原始))
.判断 (状态 = 1)&&' 静默球形
& & 返回 (多项选择 (球色, #白球闭眼, #红球闭眼, #蓝球闭眼, #黄球闭眼, #绿球闭眼, #紫球闭眼, #褐球闭眼, #青球闭眼))
.判断 (状态 = 2)&&' 中看球形
& & 返回 (多项选择 (球色, #白球中看, #红球中看, #蓝球中看, #黄球中看, #绿球中看, #紫球中看, #褐球中看, #青球中看))
.判断 (状态 = 3)&&' 左看球形
& & 返回 (多项选择 (球色, #白球左看, #红球左看, #蓝球左看, #黄球左看, #绿球左看, #紫球左看, #褐球左看, #青球左看))
.判断 (状态 = 4)&&' 右看球形
& & 返回 (多项选择 (球色, #白球右看, #红球右看, #蓝球右看, #黄球右看, #绿球右看, #紫球右看, #褐球右看, #青球右看))
.判断 (状态 = 5)&&' 上看球形
& & 返回 (多项选择 (球色, #白球上看, #红球上看, #蓝球上看, #黄球上看, #绿球上看, #紫球上看, #褐球上看, #青球上看))
.判断 (状态 = 6)&&' 下看球形
& & 返回 (多项选择 (球色, #白球下看, #红球下看, #蓝球下看, #黄球下看, #绿球下看, #紫球下看, #褐球下看, #青球下看))
.判断 (状态 = 7)&&' 消除球形
& & 返回 (多项选择 (球色, #白球消除, #红球消除, #蓝球消除, #黄球消除, #绿球消除, #紫球消除, #褐球消除, #青球消除))
返回 ({&&})
.子程序 _图形按钮最小化_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (控件被激活 = 假)
& & 控件被激活 = 真
& & 播放音乐 (#控件激活, )
.如果真结束
.子程序 _图形按钮关闭_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (控件被激活 = 假)
& & 控件被激活 = 真
& & 播放音乐 (#控件激活, )
.如果真结束
.子程序 __启动窗口_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (玩家名称标签.文本颜色 ≠ #蓝色)
& & 玩家名称标签.文本颜色 = #蓝色
.如果真结束
.如果真 (控件被激活 ≠ 假)
& & 控件被激活 = 假
.如果真结束
.子程序 _查看荣誉榜_被选择
播放音乐 (#控件选中, )
载入 (窗口荣誉榜, _启动窗口, 真)
.子程序 _退出游戏_被选择
_图形按钮关闭_被单击 ()
.子程序 _游戏说明_被选择
播放音乐 (#控件选中, )
载入 (游戏说明窗口, _启动窗口, 真)
.子程序 __启动窗口_鼠标右键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
弹出菜单 (菜单, 取鼠标水平位置 () - 15, 取鼠标垂直位置 () - 10)
菜单.选中 = 假
.子程序 _玩家名称标签_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
播放音乐 (#控件选中, )
载入 (更名窗口, , 真)
.子程序 _玩家名称标签_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (玩家名称标签.文本颜色 ≠ #红色)
& & 玩家名称标签.文本颜色 = #红色
& & 机读文本.文本到语音 (0, “你好,” + 玩家名称, , )
.如果真结束
.子程序 _语音识别_识别到语音
.参数 识别文本, 文本型
.判断开始 (寻找文本 (识别文本, “红”, , 假) ≠ -1)
& & 编辑框1.内容 = “2”
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “红球吗?,待会给你。”, -1, 真)
.判断 (寻找文本 (识别文本, “蓝”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “蓝球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “3”
.判断 (寻找文本 (识别文本, “黄”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “黄球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “4”
.判断 (寻找文本 (识别文本, “绿”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “绿球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “5”
.判断 (寻找文本 (识别文本, “紫”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “紫球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “6”
.判断 (寻找文本 (识别文本, “褐”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “褐球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “7”
.判断 (寻找文本 (识别文本, “青”, , 假) ≠ -1)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “青球吗?,待会给你。”, -1, 真)
& & 编辑框1.内容 = “8”
.如果真 (编辑框1.内容 = “”)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “对不起,我没听懂。”, -1, 假)
.如果真结束
语音识别.释放 ()
.子程序 _后继球画板_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 已出球数, 整数型, 静态
.如果真 (已出球数 < 到数值 (已走步数.标题) ÷ 3)
& & 提示框.弹出提示框 (_启动窗口.左边 + 后继球画板.左边 + 后继球画板.宽度 + 5, _启动窗口.顶边 + 后继球画板.顶边 + 5, “亲,你可以大声说喊出你想要的球!”, -1, 假)
& & 语音识别.创建 (0, 1)
& & 已出球数 = 已出球数 + 1
.如果真结束
23:34 上传
点击文件名下载附件
下载积分: 精币 -1 枚
801.02 KB, 下载次数: 64, 下载积分: 精币 -1 枚
改造易语言自带
您可以选择打赏方式支持楼主
阅读权限30
结帖率: (1/2)
来看看很牛逼的样子
阅读权限228
签到天数: 1 天结帖率: (8/20)
搜嘎& && && && && &
阅读权限120
结帖率: (3/3)
用代码代替了你的文字
阅读权限30
签到天数: 1 天
路过。。。。
阅读权限70
结帖率: (14/16)
#在这里快速回复#看帖必回 这是美德
阅读权限20
结帖率: (2/2)
来看看很牛逼的样子
阅读权限70
结帖率: (2/5)
#在这里快速回复#看帖必回 这是美德
阅读权限70
结帖率: (2/2)
看帖必回 这是美德
阅读权限90
结帖率: (6/22)
好像很牛逼的样子
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25

我要回帖

更多关于 按键精灵界面输入框 的文章

 

随机推荐