|
利用python实现的汉诺塔。带有图形演示
复制代码 代码如下: from time import sleep
def disp_sym(num,sym): print(sym*num,end='')
#recusion def hanoi(a,b,c,n,tray_num): if n == 1: move_tray(a,c) disp(tray_num) sleep(0.7)
else: hanoi(a,n-1,tray_num) move_tray(a,c) disp(tray_num) sleep(0.7) hanoi(b,a,tray_num)
def move_tray(a,b): for i in a: if i != 0: for j in b: if j != 0: b[b.index(j) - 1] = i a[a.index(i)] = 0 return b.append(i) b.pop(0) a[a.index(i)] = 0 return
def disp(tray_num): global a,c for i in range(tray_num): for j in ['a','b','c']: disp_sym(5,' ') eval('disp_sym(tray_num - ' + j + "[i],' ')") eval('disp_sym(' + j + "[i],'=')") disp_sym(1,'|') eval('disp_sym(' + j + "[i],'=')") eval('disp_sym(tray_num - ' + j + "[i],' ')")
print()
print('---------------------------------------------------------------------------')
tray_num=int(input("Please input the number of trays:")) tray=[] for i in range(tray_num): tray.append(i + 1) a=[0]*tray_num b=a[:] c=a[:]
a = tray[:] disp(tray_num) hanoi(a,tray_num,tray_num)
您可能感兴趣的文章:- python实现汉诺塔递归算法经典案例
- python益智游戏计算汉诺塔问题示例
- python实现汉诺塔方法汇总
- python二分查找算法的递归实现方法
- python装饰器与递归算法详解
- Python基于递归算法实现的走迷宫问题
- Python递归实现汉诺塔算法示例
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|