开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6848|回复: 12
打印 上一主题 下一主题
收起左侧

[易源码分享] 改造易语言自带 搞怪碰碰球 自己玩的上瘾

[复制链接]
结帖率:100% (2/2)
跳转到指定楼层
楼主
发表于 2014-8-25 23:37:28 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   天津市天津市
分享源码
界面截图:
是否带模块: -
备注说明: -
本帖最后由 科学奇迹 于 2014-8-26 00:00 编辑

有语音,不知道你们能不能用记分有点复杂,不知道你们能不能明白
还有易语言自带原版,不知道盗没盗版
  
窗口程序集名保 留  保 留备 注
游戏窗口程序集   
变量名类 型数组备 注
球位整数型819×9大小
后继球整数型0开局成员5 局中成员3
选中球位整数型  
球形状态整数型保留中间动画状态
分数整数型  
名次整数型  
控件被激活逻辑型音效控制用
机读文本机读文本  
配置文件名文本型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
变量整数型 
文本分数文本型 
新榜内容文本型 
常用词语文本型3
机读文本.设置语音库 (“VW Lily”)
球形状态 = 2
计次循环首 (3, 变量)  ' 画后继球画板纵分隔线
后继球画板.画直线 ( (变量 - 1) × 40, 0, (变量 - 1) × 40, 后继球画板.高度)
计次循环尾 ()
后继球画板.画直线 (0, 0, 后继球画板.宽度, 0)
配置文件名 = 取运行目录 ()“\gaoguai.ini”  ' 更新荣誉榜
如果 (文件是否存在 (配置文件名))
计次循环首 (10, 变量)
文本分数 = 到文本 (多项选择 (变量, 1870, 1640, 1500, 1320, 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=14982693] (游戏说明)[/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)
已出球数 = 已出球数 + 1


i支持库列表   支持库注释   
ESpeechEngine文本语音转换支持库
iext扩展界面支持库一
iext5扩展界面支持库五

搞怪碰碰球.rar

801.02 KB, 下载次数: 91, 下载积分: 精币 -2 枚

改造易语言自带


13
发表于 2019-11-9 14:22:21 | 只看该作者   四川省德阳市
搞怪碰碰球
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)
12
发表于 2014-9-3 10:02:15 | 只看该作者   云南省昆明市
来看看很牛逼的样子
回复 支持 反对

使用道具 举报

结帖率:37% (7/19)
11
发表于 2014-9-2 14:02:15 | 只看该作者   北京市北京市
搜嘎               
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
10
发表于 2014-8-28 17:48:27 | 只看该作者   福建省厦门市
用代码代替了你的文字
回复 支持 反对

使用道具 举报

9
发表于 2014-8-28 11:22:38 | 只看该作者   江苏省无锡市
路过。。。。
回复 支持 反对

使用道具 举报

结帖率:82% (14/17)
8
发表于 2014-8-27 13:55:38 | 只看该作者   广东省东莞市

#在这里快速回复#看帖必回 这是美德
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
7
发表于 2014-8-26 20:30:28 | 只看该作者   山东省青岛市
来看看很牛逼的样子
回复 支持 反对

使用道具 举报

结帖率:40% (2/5)
6
发表于 2014-8-26 16:09:29 | 只看该作者   四川省遂宁市
#在这里快速回复#看帖必回 这是美德
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
地下
发表于 2014-8-26 10:40:26 | 只看该作者   北京市北京市
看帖必回 这是美德
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表