易语言数独取样源码

.版本 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”) .' 循环判断尾 (行重复 = 真 或 列重复 = 真 或 宫重复 = 真) 数据集 [数据地址] = 现取数 宫数组 [宫组地址] = 现取数 返回 ()
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注