易语言自定义宫格数学题
.版本 2
.程序集 窗口程序集1
.程序集变量 组件, 编辑框, , "0"
.程序集变量 行数, 整数型
.程序集变量 纵数, 整数型
.程序集变量 次数, 整数型
.程序集变量 最大的数, 整数型
.子程序 __启动窗口_创建完毕
.局部变量 计次, 整数型
.局部变量 计数, 整数型
.局部变量 临时, 编辑框
' 行数 = 3
' 纵数 = 3
.如果 (输入框 (“请输入表格的横纵行数!(X>3)”, “请输入”, “3”, 次数, 2))
.如果真 (次数 < 3)
次数 = 3
.如果真结束
.否则
次数 = 3
.如果结束
.计次循环首 (次数, 计次)
.计次循环首 (次数, 计数)
复制窗口组件 (被复制组件, 临时)
临时.移动 (15 + (计数 - 1) × 40 + (计数 - 1) × 15, 15 + (计次 - 1) × 40 + (计次 - 1) × 15, 40, 40)
临时.可视 = 真
临时.标记 = 到文本 ((计次 - 1) × 次数 + 计数)
临时.最大允许长度 = 取文本长度 (到文本 (绝对取整 (次数 × 次数)))
加入成员 (组件, 临时)
' (计次 - 1) × 行数 + 计数
.计次循环尾 ()
.计次循环尾 ()
最大的数 = 绝对取整 (次数 × 次数)
标题 = “数学题”
信息框 (“请在方框里输入1~” + 到文本 (最大的数) + “的数,使得横竖斜之和都相等。---来自小梓莹家族[xziying.com]”, #信息图标, “提示”, )
宽度 = 15 + 次数 × 40 + 次数 × 15 + 5
按钮1.左边 = 宽度 - 63
高度 = 15 + (次数 + 1) × 40 + (次数 + 1) × 15 + 15
按钮1.顶边 = 高度 - 68
标签1.顶边 = 按钮1.顶边 - 6
重定义数组 (组件, 真, 次数 × 次数) ' 防止数组错误
.子程序 _按钮1_被单击
.局部变量 计次, 整数型
.局部变量 计数, 整数型
.局部变量 结果, 整数型, , "0"
.局部变量 记录, 整数型
重定义数组 (结果, 假, 次数 × 2 + 2)
.计次循环首 (次数, 计次)
.计次循环首 (次数, 计数)
结果 [计次] = 结果 [计次] + 到数值 (组件 [(计次 - 1) × 次数 + 计数].内容) ' 横行相加
结果 [次数 + 计数] = 结果 [次数 + 计数] + 到数值 (组件 [(计次 - 1) × 次数 + 计数].内容) ' 纵行相加
.如果真 (计数 = 计次)
结果 [次数 × 2 + 1] = 结果 [次数 × 2 + 1] + 到数值 (组件 [(计次 - 1) × 次数 + 计数].内容)
结果 [次数 × 2 + 2] = 结果 [次数 × 2 + 2] + 到数值 (组件 [(计次 - 1) × 次数 + 次数 - (计次 - 1)].内容)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
.计次循环首 (取数组成员数 (结果) - 1, 计次)
.如果真 (结果 [计次 + 1] = 结果 [1])
记录 = 记录 + 1
.如果真结束
.计次循环尾 ()
.如果 (记录 = 7)
信息框 (“恭喜您成功破解了本道数学题!”, 0, )
.否则
信息框 (“不对哦~横竖斜还有些之和不一样哦~”, 0, , )
.如果结束
.子程序 _被复制组件_失去焦点
.局部变量 事件, 编辑框
.局部变量 计次, 整数型
.局部变量 标记1, 整数型
事件 = 取事件组件 ()
标记1 = 到数值 (事件.标记)
.如果真 (到数值 (事件.内容) > 绝对取整 (次数 × 次数))
事件.内容 = “”
信息框 (“请输入1~” + 到文本 (绝对取整 (次数 × 次数)) + “的数字!”, #错误图标, “提示”)
返回 ()
.如果真结束
.计次循环首 (次数 × 次数, 计次)
.如果真 (计次 ≠ 标记1)
.如果真 (组件 [计次].内容 = 事件.内容 且 事件.内容 ≠ “”)
事件.内容 = “”
信息框 (“不能重复输入”, #错误图标, “提示”)
跳出循环 ()
.如果真结束
.如果真结束
.计次循环尾 ()
.子程序 _被复制组件_内容被改变
.局部变量 事件, 编辑框
事件 = 取事件组件 ()
.如果真 (到数值 (事件.内容) ≤ 0 且 事件.内容 ≠ “”)
事件.内容 = “”
信息框 (“请输入1~” + 到文本 (绝对取整 (次数 × 次数)) + “的数字!”, #错误图标, “提示”)
返回 ()
.如果真结束