【5.30】(易语言)测试眼力教程附exe
本帖最后由 wm_xf 于 2018-5-30 19:41 编辑
要的组件:动画框1 画板1 画板3都要一个工作夹:
子程序1 (取随机数 (2, 10))
置随机数种子 ()
动画框1.重画 ()
动画框1.清除背景 (, , , )
间隔 = 1
每块列大小 = (动画框1.宽度 - 3) ÷ 几个
每块行大小 = (动画框1.高度 - 3) ÷ 几个
颜色值 = 取颜色值 (取随机数 (50, 120), 取随机数 (50, 100), 取随机数 (50, 140))
单独颜色值 = 取随机数 (1, 几个 × 几个)
点击次数 = 点击次数 + 1
变量循环首 (1, 几个, 1, 行循环)
变量循环首 (1, 几个, 1, 列循环)
c = c + 1
如果 (c = 单独颜色值)
动画框1.刷子颜色 = 颜色值 + 100 - 点击次数
矩形位置.左边 = (行循环 - 1) × 每块列大小 + 间隔
矩形位置.顶边 = (列循环 - 1) × 每块行大小 + 间隔
矩形位置.右边 = (行循环 - 1) × 每块列大小 + 每块列大小
矩形位置.下边 = (列循环 - 1) × 每块行大小 + 每块行大小
动画框1.刷子颜色 = 颜色值
' 调试输出 (行循环, 列循环, c, b, 几个, 颜色值)
动画框1.画圆角矩形 ( (行循环 - 1) × 每块列大小 + 间隔, (列循环 - 1) × 每块行大小 + 间隔, (行循环 - 1) × 每块列大小 + 每块列大小, (列循环 - 1) × 每块行大小 + 每块行大小, 1, 1)
' 动画框1.定位写出 ((行循环 - 1) × 每块列大小 + 间隔, (列循环 - 1) × 每块行大小 + 间隔, 到文本 (行循环) + “|” + 到文本 (列循环))
变量循环尾 ()
变量循环尾 ()
' 调试输出 (矩形位置.左边, 矩形位置.顶边, 矩形位置.右边, 矩形位置.下边, 颜色值, 点击次数)
如果真 (横向位置 > 矩形位置.左边 且 横向位置 < 矩形位置.右边)
如果真 (纵向位置 > 矩形位置.顶边 且 纵向位置 < 矩形位置.下边)
' 调试输出 (横向位置, 纵向位置)
调试输出 (点击次数)
判断 (点击次数 ≤ 3)
格子数 = 2
判断 (点击次数 > 3 且 点击次数 ≤ 7)
格子数 = 3
判断 (点击次数 > 7 且 点击次数 ≤ 10)
格子数 = 5
判断 (点击次数 > 10 且 点击次数 ≤ 14)
格子数 = 7
判断 (点击次数 > 14 且 点击次数 ≤ 20)
格子数 = 10
判断 (点击次数 > 20 且 点击次数 ≤ 30)
格子数 = 14
判断 (点击次数 > 30 且 点击次数 ≤ 40)
格子数 = 20
判断 (点击次数 > 40 且 点击次数 ≤ 50)
格子数 = 25
判断 (点击次数 > 50 且 点击次数 ≤ 70)
格子数 = 30
判断 (点击次数 > 70 且 点击次数 ≤ 90)
格子数 = 35
判断 (点击次数 > 90 且 点击次数 ≤ 100)
格子数 = 40
子程序1 (格子数)
画星级进度 (画板3, 0, 100, 点击次数, 9, , , , )
子程序1 (2)
时钟1.时钟周期 = 1000
画星级进度 (画板3, 0, 100, 点击次数, 9, , , , )
如果 (a < 60)
a = a + 1
a = 0
时钟1.时钟周期 = 0
画进度 (画板1, 60, 0, a, , , , 真, 到文本 (60 - a))
新建个程序集
画板.清除 (, , , )
画板.自动重画 = 真
如果 (进度条颜色 = 0)
画板.刷子颜色 = 画板.刷子颜色
画板.刷子颜色 = 进度条颜色
如果 (画板背景色 = 0)
画板.画板背景色 = 画板.画板背景色
画板.画板背景色 = 画板背景色
每星位置 = 画板.宽度 ÷ 共几星横变量 = 到整数 (当前位置 - 最小位置) ÷ 到整数 (最大位置 - 最小位置) × 画板.宽度
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度 - 画板.字体.字体大小 × 2 - 2)
计次循环首 (共几星, i)
画板.画直线 (到整数 (每星位置 × i - 每星位置 - 1), 0, 到整数 (每星位置 × i - 每星位置 - 1), 画板.高度 - 画板.字体.字体大小 × 2 - 2)
每星数 = 最大位置 ÷ 共几星
画板.定位写出 (每星位置 × i - 每星位置 - 1 + 到数值 (每星位置 ÷ 2 - 画板.字体.字体大小), 画板.高度 - 画板.字体.字体大小 × 2 + 2, 到文本 (i) + “★”)
计次循环尾 ()
画板.画直线 (0, 画板.高度 - 画板.字体.字体大小 × 2 - 2, 画板.宽度, 画板.高度 - 画板.字体.字体大小 × 2 - 2)
计次循环首 (共几星, i)
如果 (当前位置 ≤ 每星数 × i)
如果 (i + 1 > 共几星)
' 标签5.标题 = 到文本 (到整数 (当前位置)) + “/” + 到文本 (到整数 (每星数) × i) + “ 距满星还差:” + 到文本 (到整数 (每星数) × i - 当前位置)
' 标签5.标题 = 到文本 (到整数 (当前位置)) + “/” + 到文本 (到整数 (每星数) × i) + “ 距” + 到文本 (i + 1) + “星还差:” + 到文本 (到整数 (每星数) × i - 当前位置)
' 标签6.标题 = “当前:” + 到文本 (i) + #星星
跳出循环 ()
' 标签5.标题 = “满星”
计次循环尾 ()
如果真 (显示文本 = 真)
如果 (自定义文本 = “”)
画板.定位写出 (到数值 (画板.宽度 ÷ 2 - 画板.字体.字体大小 ÷ 2), 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 到文本 (四舍五入 (到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 100, 2)) + “%”)
画板.定位写出 (到数值 (画板.宽度 - 画板.字体.字体大小) ÷ 2 - 取文本长度 (自定义文本) × 2, 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 自定义文本)
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置
画板.清除 (, , , )
画板.自动重画 = 真
如果 (进度条颜色 = 0)
画板.刷子颜色 = 画板.刷子颜色
画板.刷子颜色 = 进度条颜色
如果 (画板背景色 = 0)
画板.画板背景色 = 画板.画板背景色
画板.画板背景色 = 画板背景色
横变量 = 到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 画板.宽度 ' 画板.填充矩形 (画板.画笔粗细 + 1, 画板.画笔粗细 + 1, 横变量 - 3, 画板.高度 - 3)
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度)
' 标签1.标题 = 到文本 (取绝对值 (当前位置 - 最小位置)) + “/” + 到文本 (取绝对值 (最大位置 - 最小位置))
如果真 (显示文本 = 真)
如果 (自定义文本 = “”)
画板.定位写出 (到数值 (画板.宽度 ÷ 2 - 画板.字体.字体大小 ÷ 2), 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 到文本 (四舍五入 (到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 100, 2)) + “%”)
画板.定位写出 (到数值 (画板.宽度 - 画板.字体.字体大小) ÷ 2 - 取文本长度 (自定义文本) × 2, 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 自定义文本)
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置
建一个自定义数据类型表
要的组件:动画框1 画板1 画板3都要一个工作夹:
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | |||
变量名 | 类 型 | 数组 | 备 注 |
矩形位置 | 巨型数据 | ||
点击次数 | 整数型 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||
_按钮1_被单击 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
子程序1 | |||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
几个 | 整数型 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
间隔 | 双精度小数型 | |||||
行循环 | 整数型 | |||||
列循环 | 整数型 | |||||
每块列大小 | 双精度小数型 | |||||
每块行大小 | 双精度小数型 | |||||
颜色值 | 整数型 | |||||
b | 整数型 | |||||
c | 整数型 | |||||
单独颜色值 | 整数型 |
动画框1.重画 ()
动画框1.清除背景 (, , , )
间隔 = 1
每块列大小 = (动画框1.宽度 - 3) ÷ 几个
每块行大小 = (动画框1.高度 - 3) ÷ 几个
颜色值 = 取颜色值 (取随机数 (50, 120), 取随机数 (50, 100), 取随机数 (50, 140))
单独颜色值 = 取随机数 (1, 几个 × 几个)
点击次数 = 点击次数 + 1
' 调试输出 (矩形位置.左边, 矩形位置.顶边, 矩形位置.右边, 矩形位置.下边, 颜色值, 点击次数)
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
_动画框1_鼠标左键被按下 | 逻辑型 | ||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
横向位置 | 整数型 | 纵向位置 | 整数型 | 功能键状态 | 整数型 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
格子数 | 整数型 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||
__启动窗口_创建完毕 |
时钟1.时钟周期 = 1000
画星级进度 (画板3, 0, 100, 点击次数, 9, , , , )
子程序名 | 返回值类型 | 公开 | 备 注 | ||
_时钟1_周期事件 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
a | 整数型 | √ |
画进度 (画板1, 60, 0, a, , , , 真, 到文本 (60 - a))
i支持库列表 | 支持库注释 |
iext2 | 扩展界面支持库二 |
spec | 特殊功能支持库 |
新建个程序集
窗口程序集名 | 保 留 | 保 留 | 备 注 |
程序集1 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
画星级进度 | |||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
画板 | 画板 | 最小位置 | 双精度小数型 | 最大位置 | 双精度小数型 | 当前位置 | 双精度小数型 | 共几星 | 整数型 | 刷子类型 | 整数型 | √ | 参考画板属性里的刷子类型 | 进度条颜色 | 整数型 | √ | 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值) | 画板背景色 | 整数型 | √ | 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值) | 显示文本 | 逻辑型 | √ | 默认为“假”不显示 为“真”时在进度条上显示文本 | 自定义文本 | 文本型 | √ | 默认为“2位小数的百分比” |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
横变量 | 双精度小数型 | |||||
纵变量 | 双精度小数型 | |||||
记录最大位置 | 整数型 | √ | ||||
i | 整数型 | |||||
每星位置 | 双精度小数型 | |||||
每星数 | 双精度小数型 |
画板.自动重画 = 真
画板.画板背景色 = 画板.画板背景色
每星位置 = 画板.宽度 ÷ 共几星横变量 = 到整数 (当前位置 - 最小位置) ÷ 到整数 (最大位置 - 最小位置) × 画板.宽度
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度 - 画板.字体.字体大小 × 2 - 2)
画板.画直线 (0, 画板.高度 - 画板.字体.字体大小 × 2 - 2, 画板.宽度, 画板.高度 - 画板.字体.字体大小 × 2 - 2)
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置
子程序名 | 返回值类型 | 公开 | 备 注 | ||||
画进度 | |||||||
参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
画板 | 画板 | 最小位置 | 双精度小数型 | 最大位置 | 双精度小数型 | 当前位置 | 双精度小数型 | 刷子类型 | 整数型 | √ | 参考画板属性里的刷子类型 | 进度条颜色 | 整数型 | √ | 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值) | 画板背景色 | 整数型 | √ | 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值) | 显示文本 | 逻辑型 | √ | 默认为“假”不显示 为“真”时在进度条上显示文本 | 自定义文本 | 文本型 | √ | 默认为“2位小数的百分比” |
变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
横变量 | 双精度小数型 | |||||
纵变量 | 双精度小数型 | |||||
记录最大位置 | 整数型 | √ |
画板.自动重画 = 真
画板.画板背景色 = 画板.画板背景色
横变量 = 到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 画板.宽度 ' 画板.填充矩形 (画板.画笔粗细 + 1, 画板.画笔粗细 + 1, 横变量 - 3, 画板.高度 - 3)
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度)
' 标签1.标题 = 到文本 (取绝对值 (当前位置 - 最小位置)) + “/” + 到文本 (取绝对值 (最大位置 - 最小位置))
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置
建一个自定义数据类型表
数据类型名 | 公开 | 备 注 | ||||
巨型数据 | ||||||
成员名 | 类 型 | 传址 | 数组 | 备 注 | ||
左边 | 整数型 | |||||
顶边 | 整数型 | |||||
右边 | 整数型 | |||||
下边 | 整数型 |