APPInventor解汉诺塔4
2019-05-01 18:58
第四次课,我们将实现还原移动函数的编写,并通过移动前后ABC序列列表内容的变化,来判断是否正确完成了还原。
程序中的变量及函数说明如下:
变量:
级数:数,表示汉诺塔游戏的级数。
移动次数:数,用于统计汉诺塔复归需要移动的步数。
记录移动顺序:列表,存储汉诺塔还原过程的移动编号,1——6(具体每个数表示的含义请看视频讲解)。
新增变量:
A序列:列表,存储汉诺塔A柱上圆盘的编号,从列表的最低项到最高项,分别存放该柱上最下层到最上层的圆盘编号,在程序开始,提交按钮被点击时,将初始位置A柱上的圆盘依次赋给A序列列表。
B序列:列表,存储汉诺塔B柱上圆盘的编号。
C序列:列表,存储汉诺塔C柱上圆盘的编号。
过程:
归位:汉诺塔移动的主函数,该函数使用经典的递归算法实现。传递参数:当前级数——表示当前的汉诺塔的级数,包括递归调用过程中降级的级数;A字母标识——表示A柱;B字母标识——表示B柱;C字母标识——表示C柱;
移动记录:记录移动的步数,并用文本记录移动的过程。
新增过程:
还原移动过程:根据移动过程中存储的移动编号(1——6),判定每一步进行了何种移动,并对ABC序列列表进行相应的添加及删减操作。
事件:
当“提交”被点击时:提交当前需要恢复的汉诺塔的级数,并将移动步数清零。
当“开始移动”被点击时:启动汉诺塔复归。
程序截图如下:
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com