下圖是漢諾塔游戲的簡單圖示,我們要把x柱子上面的移動到z軸上面(漢諾塔游戲規則可以自行搜索,這里不做介紹)

需要引入tkinter和ScrolledText模塊,下面直接貼代碼(我用的是python3.6)。
1 import tkinter 2 from tkinter.scrolledtext import ScrolledText 3 root = tkinter.Tk() 4 root.title('漢諾塔解題器') 5 root.geometry('300x200') 6 root.resizable(width=False, height=True) 7 tkinter.Label(root, text='請輸入漢諾塔的層數', font=('微軟雅黑', 12)).pack() 8 var = tkinter.StringVar() 9 e = tkinter.Entry(root, textvariable = var) 10 e.pack() 11 t = tkinter.scrolledtext.ScrolledText(root) 12 ans = [] 13 def hanoi(n, x, y, z): 14 if n == 1 : 15 ans.append(x + '-->' + z) 16 else : 17 hanoi(n-1, x, z, y) #將前n-1個盤子從x移動到y上 18 ans.append(x + '-->' + z) #將最底下的最后一個盤子從x移動到z上 19 hanoi(n-1, y, x, z) #將y上的n-1個盤子移動到z上 20 return ans 21 def calc() : 22 del ans[:] 23 n = int(var.get()) 24 str2 = hanoi(n, 'x', 'y', 'z') 25 t.delete(0.0, tkinter.END) 26 count = 0 27 for stre in str2 : 28 count = count + 1 29 t.insert(tkinter.END, '第' + str(count) + '步:' + stre + '\n') 30 t.insert(1.0, '[一共' + str(count) + '步]\n') 31 t.pack() 32 tkinter.Button(root, text="確定", command=calc).pack() 33 root.mainloop()
然后運行之后結果如下圖,比如輸入漢諾塔的層數為3,然后點擊確定按鈕下面就會顯示出詳細的
步驟。

(ps:寫這個是為了做筆記防止以后忘記,解題思路代碼部分參考網上搜索的結果,例如小甲魚的python教學,若有侵權聯系我馬上刪除,謝謝!!)
