scratch课程-60第六十课汉诺塔一
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
今日任务:
今天,我们将以小时候大家都玩儿过的汉诺塔游戏作为原型,用scratch编程实现它,
汉诺塔游戏的规则是这样的:
A柱B柱C柱
A 柱
B 柱
C 柱
A 柱
B 柱
C 柱
A柱B柱C柱
A柱B柱C柱
我们似乎可以从这样儿的移动中找到某些规律
移动时,盘子其实都遵循着这样儿的规律:
无论是移动多少个圆盘,都可以看做是现将A 柱上除最大的圆盘以外的所有圆盘移到B 柱,然后,移动A 柱上最大的圆盘到C 柱,最后再将B 柱上的所有圆盘移动到C 柱上,结束。
比如三个圆盘时:
A 柱
B 柱
C 柱
核心算法简述:
Step1:如果盘子数=1,那么直接执行第2步,否则执行第3步
Step2:盘子从A柱直接移动到C柱,执行第6步
Step3:核心算法(可传递参数)
执行:A柱是起点柱,B柱作为终点柱,C柱作为中转柱①Step4:执行:将盘子从起点柱移动到终点柱②Step5:核心算法(可传递参数)
执行:B柱作为起点柱,C柱作为终点柱,A柱作为中转柱③
本课重难点:
(1)通过汉诺塔的操作演示可以理解推导出的递归算法即本程序的核心算法。
(2)能够正确理解本程序的编写思路,今后遇到同样的问题可以按照本程序所发现的规律去解决问题。
任务解读(Flow chart):