python汉诺塔用循环结构实现_python实现的汉诺塔解谜软件

自己

自己动手做了一个汉诺塔的手把手指导的图形界面软件,看起来不是非常高大上。不过复习了递归调用,学习了python的图形界面。以及多次尝试与错误之后,学会了怎么解汉诺塔。话不多说了,直接上代码。

语言环境: python3.5.2

from tkinter import *

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.pack()

self.createWidges()

def createWidges(self):

self.label = Label(text="How many plates are there of hanoi? number: ")

self.numInput = Entry()

self.resolveButton = Button(self, text='RESOLVE', command=self.resolve)

self.resultOutput = Text(self)

self.label.pack(side=LEFT)

self.numInput.pack()

self.resolveButton.pack()

self.resultOutput.pack()

def resolve(self):

self.count = 0

self.resultOutput.delete(0.0, END)

num = int(self.numInput.get() or '3')

self.moveUI(num, 'A', 'B', 'C')

def moveUI(self, n , a, b, c):

if n == 1:

self.count += 1

self.resultOutput.insert(INSERT, '第' + str(self.count) + '步: ' + a + '->' +c + '\n')

return

self.moveUI(n-1, a, c, b)

self.moveUI(1, a, b, c)

self.moveUI(n-1, b, a, c)

return

app = Application()

app.master.title('Hanoi Solver')

app.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值