汉诺塔是一款启发智力不错的小游戏,它的难度移动步数随着圆盘数成指数增长,对于小孩子来说,很难去实际动手解决这样的问题。今天看了一篇博客,(博客地址:https://blog.csdn.net/qq_17119267/article/details/79077560),学到了一种有趣的移动方法,觉得值得保存一下,以后可以教给自己的孩子玩。
游戏规则如下:有n个半径自上而下递增的圆盘套在A柱上,利用空的B柱,全部移动到C柱上,每次只能移动一个圆盘并保持小盘在大盘之上。移动过程中,小盘始终在大盘之上。
首先,确定圆盘数n。若n为偶数,则将A,B,C三根柱子以顺时针呈“品”字摆放;若n为奇数,则将A,B,C三根柱子以逆时针呈“品”字摆放。
1.锁定最小的盘(编号1),将1号顺时针移动到下一根柱子(这一步始终只针对1盘顺时针操作);
2.在不含1盘的两根柱子中,将非空柱子的圆盘移动到空柱子上;当两根柱子都非空时,选择较小的圆盘移到另一根柱子上。
反复执行上述两步操作,直至游戏结束。
当n=3时,将A,B,C逆时针“品”字摆放:
1盘:A--->C
2盘:A--->B
1盘:C--->B
3盘:A--->C
1盘:B--->A
2盘:B--->C
1盘:A--->C