易语言推导法九宫计算

511遇见

程序集变量

.版本 2

.程序集 启动窗口程序集
.程序集变量 外循环当前位置, 整数型, , , 第一层循环的计次变量
.程序集变量 内循环当前位置, 整数型, , , 第二层循环的计次变量
.程序集变量 左上, 整数型, , , 记录第一行第1列的数值
.程序集变量 中上, 整数型, , , 记录第一行第2列的数值
.程序集变量 右上, 整数型, , , 记录第一行第3列的数值
.程序集变量 中左, 整数型, , , 记录第二行第1列的数值
.程序集变量 中中, 整数型, , , 记录第二行第2列的数值
.程序集变量 中右, 整数型, , , 记录第二行第3列的数值
.程序集变量 左下, 整数型, , , 记录第三行第1列的数值
.程序集变量 中下, 整数型, , , 记录第三行第2列的数值
.程序集变量 右下, 整数型, , , 记录第三行第3列的数值
.程序集变量 数的横向显示位置, 整数型, , , 在画板显示的记录变量
.程序集变量 数的纵向显示位置, 整数型, , , 在画板显示的记录变量

执行

.版本 2
 
.子程序 _计算图形按钮_被单击
 
' 使九宫成立中间位置必须为5
中中 = 5
数的横向显示位置 = 0
.计次循环首 (9, 外循环当前位置)
    ' 第一排第一个数
    左上 = 外循环当前位置
    ' 计算同一斜排的数值
    右下 = 15 - 左上 - 中中
    ' 计算第一排第二个数的可能值
    .计次循环首 (9, 内循环当前位置)
        中上 = 内循环当前位置
        ' 与第一个数不相同
        .如果真 (左上 ≠ 中上)
            ' 获得同一列上的数值
            中下 = 15 - 中上 - 中中
            ' 根据已经有数的位置计算省下的数值
 
            .如果真 (15 - 左上 - 中上 ≤ 9 且 15 - 左上 - 中上 > 0 且 15 - 左上 - 中上 ≠ 5 且 15 - 左上 - 中上 ≠ 左上 且 15 - 左上 - 中上 ≠ 中上)
                ' 如果符合条件,确定第一行第3个数
                右上 = 15 - 左上 - 中上
            .如果真结束
            .如果真 (15 - 右上 - 中中 ≤ 915 - 右上 - 中中 > 015 - 右上 - 中中 ≠ 515 - 右上 - 中中 ≠ 左上 且 15 - 右上 - 中中 ≠ 中上)
                ' 如果符合条件,确定第三行第3个数
                左下 = 15 - 右上 - 中中
            .如果真结束
            .如果真 (15 - 左上 - 左下 ≤ 9 且 15 - 左上 - 左下 > 0 且 15 - 左上 - 左下 ≠ 5 且 15 - 左上 - 左下 ≠ 左上 且 15 - 左上 - 左下 ≠ 中上)
                ' 如果符合条件,确定第二行第1个数
                中左 = 15 - 左上 - 左下
            .如果真结束
            .如果真 (15 - 右上 - 右下 ≤ 915 - 右上 - 右下 > 015 - 右上 - 右下 ≠ 515 - 右上 - 右下 ≠ 左上 且 15 - 右上 - 右下 ≠ 中上)
                ' 如果符合条件,确定第二行第3个数
                中右 = 15 - 右上 - 右下
            .如果真结束
            ' 如果结果符合九宫原理则输出结果
            .如果真 (中左 + 中中 + 中右 = 15 且 左上 + 中上 + 右上 = 15 且 左下 + 中下 + 右下 = 15 且 左上 + 中左 + 左下 = 15 且 右上 + 中右 + 右下 = 15 且 左上 + 中中 + 右下 = 15 且 左下 + 中中 + 右上 = 15 且 中左 ≠ 左下 且 右上 ≠ 中右)
                数的横向显示位置 = 数的横向显示位置 + 1
                显示 ()
            .如果真结束
 
        .如果真结束
 
    .计次循环尾 ()
.计次循环尾 ()

显示格式

采用画板定位写出

.版本 2
 
.子程序 显示, , , 把合格的结果显示出来
 
数的纵向显示位置 = 数的横向显示位置 % 4
.如果真 (数的纵向显示位置 = 0)
    数的纵向显示位置 = 4
.如果真结束
' 定位写出
画板1.定位写出 (40 + (数的纵向显示位置 - 1) × 80, 15 + 80 × (数的横向显示位置 \ 5), 到文本 (左上) + “ ” + 到文本 (中上) + “ ” + 到文本 (右上) + #换行符 + 到文本 (中左) + “ ” + 到文本 (中中) + “ ” + 到文本 (中右) + #换行符 + 到文本 (左下) + “ ” + 到文本 (中下) + “ ” + 到文本 (右下))

发布日期:

所属分类: 易语言 标签: