分类
游戏开发源码

易语言数独源码

1、本数独支持自动绘制十字线

2、支持自动高亮现单击数字

3、支持自动验证结果

4、支持计时

5、支持提示数字个数

6、支持自动生成数独

易语言数独源码

分类
游戏开发源码

易语言数独取样源码

.版本 2 .程序集 窗口程序集1 .程序集变量 行数, 整数型 .程序集变量 列数, 整数型 .程序集变量 数据地址, 整数型 .程序集变量 取样数组, 整数型, , "0" .程序集变量 数据集, 整数型, , "81" .程序集变量 宫地址, 整数型 .程序集变量 宫组地址, 整数型 .程序集变量 宫行数, 整数型 .程序集变量 宫列数, 整数型 .程序集变量 格地址, 整数型 .程序集变量 宫数组, 整数型, , "81" .程序集变量 是否重复, 逻辑型 .程序集变量 筛选数组, 整数型, , "0" .程序集变量 归零次数, 整数型 .子程序 __启动窗口_创建完毕 行数 = 1 列数 = 1 宫组地址 = 1 归零次数 = 1 .子程序 _按钮1_被单击 .局部变量 写出数据集, 整数型 行数 = 1 列数 = 1 宫组地址 = 1 归零次数 = 1 .判断循环首 (行数 ≤ 9) .判断循环首 (列数 ≤ 9) 取样数组 () 列数 = 列数 + 1 .判断循环尾 () 行数 = 行数 + 1 列数 = 1 .判断循环尾 () 编辑框1.内容 = “” 编辑框1.刷新显示 () .计次循环首 (取数组成员数 (数据集), 写出数据集) 编辑框1.加入文本 (到文本 (数据集 [写出数据集])) .计次循环尾 () 行数 = 1 列数 = 1 宫组地址 = 1 归零次数 = 1 .子程序 取样数组 .局部变量 地址, 整数型 .局部变量 取样地址, 整数型 清除数组 (取样数组) 数据地址 = 列数 + (行数 - 1) × 9 .如果真 (数据地址 = 1) 随机取数 () 返回 () .如果真结束 取样地址 = 1 + (行数 - 1) × 9 ' 行取样↓ .判断循环首 (取样地址 < 数据地址) 加入成员 (取样数组, 数据集 [取样地址]) 取样地址 = 取样地址 + 1 .判断循环尾 () ' 行取样↑ 取样地址 = 列数 ' 列取样↓ .判断循环首 (取样地址 < 数据地址) 加入成员 (取样数组, 数据集 [取样地址]) 取样地址 = 取样地址 + 9 .判断循环尾 () ' 列取样↑ .计次循环首 (3, 宫行数) ' 宫取样↓ .如果真 (行数 ÷ 3 ≤ 宫行数) 跳出循环 () .如果真结束 .计次循环尾 () .计次循环首 (3, 宫列数) .如果真 (列数 ÷ 3 ≤ 宫列数) 跳出循环 () .如果真结束 .计次循环尾 () 宫地址 = (宫行数 - 1) × 3 + 宫列数 格地址 = (行数 - (宫行数 - 1) × 3 - 1) × 3 + 列数 - (宫列数 - 1) × 3 宫组地址 = (宫地址 - 1) × 9 + 格地址 取样地址 = (宫地址 - 1) × 9 + 1 .判断循环首 (取样地址 < 宫组地址) 加入成员 (取样数组, 宫数组 [取样地址]) 取样地址 = 取样地址 + 1 .判断循环尾 () ' 宫取样↑ 取筛选数组 () 返回 () .子程序 取筛选数组, , , 筛选数组成员为0则判断卡死 .局部变量 比较值, 整数型 .局部变量 样本地址, 整数型 .局部变量 x, 整数型 ' 初始化各变量 比较值 = 1 样本地址 = 1 是否重复 = 假 清除数组 (筛选数组) ' 进行循环判断 .判断循环首 (比较值 ≤ 9) .如果真 (数据地址 = 1) 跳出循环 () .如果真结束 .判断循环首 (样本地址 ≤ 取数组成员数 (取样数组)) .如果真 (比较值 = 取样数组 [样本地址]) 是否重复 = 真 跳出循环 () .如果真结束 样本地址 = 样本地址 + 1 .判断循环尾 () .如果真 (是否重复 = 假) 加入成员 (筛选数组, 比较值) .如果真结束 样本地址 = 1 比较值 = 比较值 + 1 是否重复 = 假 .判断循环尾 () .如果真 (取数组成员数 (筛选数组) = 0) .如果真 (数据地址 ≠ 1) 归零 () 返回 () .如果真结束 .如果真结束 随机取数 () 返回 () .子程序 归零 .局部变量 数据集归零下标, 整数型 .局部变量 宫数组归零下标, 整数型 .局部变量 列归零判断次数, 整数型 归零次数 = 归零次数 + 1 列数 = 1 列归零判断次数 = 1 数据集归零下标 = (行数 - 1) × 9 + 列数 .判断循环首 (数据集归零下标 ≤ 数据地址) .计次循环首 (3, 列归零判断次数) .如果真 (列数 ÷ 3 ≤ 列归零判断次数) 跳出循环 () .如果真结束 .计次循环尾 () 宫数组归零下标 = 18 × 宫行数 + 6 × 列归零判断次数 + 3 × 行数 + 列数 - 27 数据集 [数据集归零下标] = 0 宫数组 [宫数组归零下标] = 0 列数 = 列数 + 1 数据集归零下标 = (行数 - 1) × 9 + 列数 .判断循环尾 () 列数 = 0 .如果真 (归零次数 > 4000) _按钮1_被单击 () .如果真结束 返回 () .子程序 随机取数 .局部变量 现取数, 整数型 置随机数种子 () .' 循环判断首 () .如果 (数据地址 = 1) 现取数 = 取随机数 (1, 9) .否则 现取数 = 筛选数组 [取随机数 (1, 取数组成员数 (筛选数组))] .如果结束 ' 编辑框1.加入文本 (“12fwq”) .' 循环判断尾 (行重复 = 真 或 列重复 = 真 或 宫重复 = 真) 数据集 [数据地址] = 现取数 宫数组 [宫组地址] = 现取数 返回 ()
分类
易语言例程

易语言CNOS数独源码

易语言CNOS数独源码

分类
易语言例程

易语言数独算法源码

易语言数独算法源码

分类
易语言例程

易语言数独计算保存源码

.版本 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, #表格常量.文本型, “”) .如果结束 .计次循环尾 () .子程序 __启动窗口_创建完毕
分类
易语言例程

易语言数独解答器源码

.版本 2 .程序集 窗口程序集1 .程序集变量 bjk, 编辑框 .程序集变量 bccca, 文本型, , "9" .程序集变量 bcccb, 文本型, , "9" .程序集变量 bcccc, 文本型, , "9" .程序集变量 bd, 整数型, , "9" .程序集变量 e1, 文本型, , "81" .程序集变量 e2, 文本型, , "81" .子程序 __启动窗口_创建完毕 .子程序 _按钮1_被单击 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 z, 整数型 .局部变量 a, 整数型 .局部变量 yccy, 文本型 yccy = “” .计次循环首 (9, y) bccca [y] = “” .计次循环首 (9, x) bjk = 取标记组件 ((y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bccca [y] = bccca [y] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环首 (取文本长度 (bccca [y]), x) .如果真 (寻找文本 (bccca [y], 取文本中间 (bccca [y], x, 1), x + 1, 假) ≠ -1) yccy = yccy + “第” + 到文本 (y) + “横行有重复数字 ” + 取文本中间 (bccca [y], x, 1) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (9, x) bcccb [x] = “” .计次循环首 (9, y) bjk = 取标记组件 ((y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bcccb [x] = bcccb [x] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环首 (取文本长度 (bcccb [x]), y) .如果真 (寻找文本 (bcccb [x], 取文本中间 (bcccb [x], y, 1), y + 1, 假) ≠ -1) yccy = yccy + “第” + 到文本 (x) + “竖行有重复数字 ” + 取文本中间 (bcccb [x], y, 1) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (3, a) .计次循环首 (3, z) bcccc [(a - 1) × 3 + z] = “” .计次循环首 (3, y) .计次循环首 (3, x) bjk = 取标记组件 ((a - 1) × 27 + (z - 1) × 3 + (y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bcccc [(a - 1) × 3 + z] = bcccc [(a - 1) × 3 + z] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (取文本长度 (bcccc [(a - 1) × 3 + z]), x) .如果真 (寻找文本 (bcccc [(a - 1) × 3 + z], 取文本中间 (bcccc [(a - 1) × 3 + z], x, 1), x + 1, 假) ≠ -1) yccy = yccy + “第” + 到文本 ((a - 1) × 3 + z) + “区有重复数字 ” + 取文本中间 (bcccc [(a - 1) × 3 + z], x, 1) + #换行符 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .如果 (yccy ≠ “”) 信息框 (yccy, 0, “错误”) .否则 数组清零 (e1) .计次循环首 (81, x) bjk = 取标记组件 (x) .如果 (bjk.内容 ≠ “”) e1 [x] = bjk.内容 .否则 e1 [x] = “” .如果结束 .计次循环尾 () 出结果 () .如果结束 .子程序 出结果 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 z, 整数型 .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 f, 整数型 .循环判断首 () f = 0 .计次循环首 (81, x) bjk = 取标记组件 (x) .如果 (取文本长度 (bjk.内容) = 0) e2 [x] = “123456789” .否则 e2 [x] = e1 [x] .如果结束 a = (x - 1) ÷ 9 + 1 .计次循环首 (取文本长度 (bccca [a]), y) b = 寻找文本 (e2 [x], 取文本中间 (bccca [a], y, 1), 1, 假) .如果真 (b ≠ -1) e2 [x] = 取文本左边 (e2 [x], b - 1) + 取文本右边 (e2 [x], 取文本长度 (e2 [x]) - b) .如果真结束 .计次循环尾 () a = (x - 1) % 9 + 1 .计次循环首 (取文本长度 (bcccb [a]), y) b = 寻找文本 (e2 [x], 取文本中间 (bcccb [a], y, 1), 1, 假) .如果真 (b ≠ -1) e2 [x] = 取文本左边 (e2 [x], b - 1) + 取文本右边 (e2 [x], 取文本长度 (e2 [x]) - b) .如果真结束 .计次循环尾 () b = (x - 1) ÷ 27 a = b × 3 + ((x - 1) % 9) ÷ 3 + 1 .计次循环首 (取文本长度 (bcccc [a]), y) b = 寻找文本 (e2 [x], 取文本中间 (bcccc [a], y, 1), 1, 假) .如果真 (b ≠ -1) e2 [x] = 取文本左边 (e2 [x], b - 1) + 取文本右边 (e2 [x], 取文本长度 (e2 [x]) - b) .如果真结束 .计次循环尾 () .如果真 (取文本长度 (e2 [x]) = 1) bjk.内容 = 到文本 (e2 [x]) .如果真结束 .如果 (e2 [x] = e1 [x]) f = f + 1 .否则 e1 [x] = e2 [x] .如果结束 .计次循环尾 () .计次循环首 (9, y) bccca [y] = “” .计次循环首 (9, x) bjk = 取标记组件 ((y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bccca [y] = bccca [y] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (9, x) bcccb [x] = “” .计次循环首 (9, y) bjk = 取标记组件 ((y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bcccb [x] = bcccb [x] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环首 (3, a) .计次循环首 (3, z) bcccc [(a - 1) × 3 + z] = “” .计次循环首 (3, y) .计次循环首 (3, x) bjk = 取标记组件 ((a - 1) × 27 + (z - 1) × 3 + (y - 1) × 9 + x) .如果真 (取文本长度 (bjk.内容) = 1) bcccc [(a - 1) × 3 + z] = bcccc [(a - 1) × 3 + z] + bjk.内容 .如果真结束 .计次循环尾 () .计次循环尾 () .计次循环尾 () .计次循环尾 () .循环判断尾 (f < 81) .计次循环首 (81, x) bjk = 取标记组件 (x) .如果真 (bjk.内容 = “”) 输出调试文本 (e1 [x]) bjk.内容 = 取文本左边 (e1 [x], 1) 跳出循环 () .如果真结束 .计次循环尾 () f = 0 .计次循环首 (81, x) bjk = 取标记组件 (x) .如果真 (取文本长度 (bjk.内容) = 1) f = f + 1 .如果真结束 .计次循环尾 () .如果真 (f = 81) 信息框 (“解答完毕~”, 0, “完成”) .如果真结束 .子程序 _按钮2_被单击 .局部变量 x, 整数型 .计次循环首 (81, x) bjk = 取标记组件 (x) bjk.内容 = “” .计次循环尾 ()