子程序 汉诺塔盘子运动

.参数 盘子数,整数型

.参数 柱子甲,文本型

.参数 柱子乙,文本型

.参数 柱子丙,文本型

.如果 (盘子数 = 1)

' 如果只有一个盘,则直接将它从柱子一移动到柱子三

移动 (1,柱子甲,柱子丙)

.否则

' 把1 ~ n - 1个盘从柱子一移动到柱子二,用柱子三作为中转

汉诺塔盘子运动 (盘子数 - 1,柱子甲,柱子丙,柱子乙)

' 把第n个盘从柱子一移动到柱子三

移动 (盘子数,柱子甲,柱子丙)

' 把1 ~ n - 1个盘从柱子二移动到柱子三,用柱子一作为中转

汉诺塔盘子运动 (盘子数 - 1,柱子乙,柱子甲,柱子丙)

.如果结束

.子程序 移动

.参数 盘子号,整数型

.参数 甲柱子,文本型

.参数 乙柱子,文本型

路径 = 路径 + “步骤” + 到文本 (步骤) + “:” + “把” + 到文本 (盘子号) + “号圆盘从柱子 ” + 甲柱子 + “ 移动到” + 乙柱子 + “上 ” + #换行符

步骤 = 步骤 + 1

.子程序 _计算图形按钮_被单击

.局部变量 盘子总数,整数型

.局部变量 现在柱子,文本型

.局部变量 中间柱子,文本型

.局部变量 目标柱子,文本型

' 把盘子编辑框.内容传给现在柱子

现在柱子 = 盘子编辑框.内容

' 把中间编辑框.内容传给中间柱子

中间柱子 = 中间编辑框.内容

' 把目标编辑框.内容传给目标柱子

目标柱子 = 目标编辑框.内容

.如果真 (到数值 (现在柱子) ≤ 0 或 到数值 (中间柱子) ≤ 0 或 到数值 (目标柱子) ≤ 0 或 到数值 (个数编辑框.内容) ≤ 0 或 到数值 (个数编辑框.内容) > 10)

信息框 (“柱子或圆盘数量只能是大于0小于10的数字!”,#错误图标,“出现错误了:”)

返回

.如果真结束

盘子总数 = 到数值 (个数编辑框.内容)

结果编辑框.内容 = “”

路径 = “”

' 首次调用汉诺塔盘子运动程序

汉诺塔盘子运动 (盘子总数,现在柱子,中间柱子,目标柱子)

结果编辑框.内容 = 路径

步骤 = 1

点赞(0) 打赏

评论列表 共有 2 条评论

Hwt 1年前 回复TA

那发什么?

阳婷关 1年前 回复TA

看天书一样

微信小程序

微信扫一扫体验

立即
投稿
发表
评论
返回
顶部