.版本 2
.支持库 eGrid
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 有解, 逻辑型
.局部变量 计时, 日期时间型
计时 = 取现行时间 ()
无解 = 假
.计次循环首 (9, i)
.计次循环首 (9, j)
.如果真 (数独表格.取数据 (i - 1, j - 1) = “”)
数独表格.置数据 (i - 1, j - 1, #表格常量.文本型, “123456789”)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
.判断循环首 (数独未完成 ())
.计次循环首 (9, i)
.计次循环首 (9, j)
.如果真 (取文本长度 (数独表格.取数据 (i - 1, j - 1)) = 1)
删同行 (i - 1, j - 1)
删同列 (i - 1, j - 1)
删同九宫 (i - 1, j - 1)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
.如果真 (取时间间隔 (取现行时间 (), 计时, #秒) > 20)
信息框 (“对不起,本题无解,请检查核实”, 0, )
无解 = 真 ' 标注:数独无解
返回 ()
.如果真结束
.判断循环尾 ()
.子程序 数独未完成, 逻辑型, , 未完成返回真,完成返回假
.局部变量 i, 整数型
.局部变量 j, 整数型
.计次循环首 (9, i)
.计次循环首 (9, j)
.如果真 (取文本长度 (数独表格.取数据 (i - 1, j - 1)) ≠ 1)
返回 (真)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
返回 (假)
.子程序 删同行
.参数 行号, 整数型
.参数 列号, 整数型
.局部变量 i, 整数型
.局部变量 临时变量, 文本型
临时变量 = 数独表格.取数据 (行号, 列号)
.计次循环首 (9, i)
数独表格.置数据 (行号, i - 1, #表格常量.文本型, 子文本替换 (数独表格.取数据 (行号, i - 1), 临时变量, , , , 真))
.计次循环尾 ()
数独表格.置数据 (行号, 列号, #表格常量.文本型, 临时变量)
.子程序 删同列
.参数 行号, 整数型
.参数 列号, 整数型
.局部变量 临时变量, 文本型
.局部变量 i, 整数型
临时变量 = 数独表格.取数据 (行号, 列号)
.计次循环首 (9, i)
数独表格.置数据 (i - 1, 列号, #表格常量.文本型, 子文本替换 (数独表格.取数据 (i - 1, 列号), 临时变量, , , , 真))
.计次循环尾 ()
数独表格.置数据 (行号, 列号, #表格常量.文本型, 临时变量)
.子程序 删同九宫
.参数 行号, 整数型
.参数 列号, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 临时变量, 文本型
.局部变量 九宫代码, 整数型
临时变量 = 数独表格.取数据 (行号, 列号)
九宫代码 = (行号 \ 3) × 10 + 列号 \ 3
.计次循环首 (9, i)
.计次循环首 (9, j)
.如果真 (((i - 1) \ 3) × 10 + (j - 1) \ 3 = 九宫代码)
数独表格.置数据 (i - 1, j - 1, #表格常量.文本型, 子文本替换 (数独表格.取数据 (i - 1, j - 1), 临时变量, , , , 真))
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
数独表格.置数据 (行号, 列号, #表格常量.文本型, 临时变量)
.子程序 _按钮2_被单击, , , 存储数独
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 数独数据, 文本型
数独数据 = “”
.计次循环首 (9, i)
.计次循环首 (9, j)
.如果 (数独表格.取数据 (i - 1, j - 1) = “”)
数独数据 = 数独数据 + “0”
.否则
数独数据 = 数独数据 + 数独表格.取数据 (i - 1, j - 1)
.如果结束
.计次循环尾 ()
.计次循环尾 ()
_按钮1_被单击 ()
.如果真 (无解 = 假)
打开 (“数独题库.edb”, , , , , , )
.如果真 (查找 (读 (“原题”) = 数独数据) = 假)
加记录 (数独数据)
.如果真结束
关闭 ()
.如果真结束
.子程序 _按钮3_被单击, , , 读取数独
.局部变量 数独数据, 文本型
.局部变量 i, 整数型
打开 (“数独题库.edb”, , , , , , )
置随机数种子 ()
跳到 (取随机数 (1, 取记录数 ()))
数独数据 = 读 (1)
关闭 ()
.计次循环首 (81, i)
.如果 (取文本中间 (数独数据, i, 1) ≠ “0”)
数独表格.置数据 ((i - 1) \ 9, (i - 1) % 9, #表格常量.文本型, 取文本中间 (数独数据, i, 1))
.否则
数独表格.置数据 ((i - 1) \ 9, (i - 1) % 9, #表格常量.文本型, “”)
.如果结束
.计次循环尾 ()
.子程序 __启动窗口_创建完毕