Red de conocimiento informático - Problemas con los teléfonos móviles - Python, utilice la programación de algoritmos recursivos para resolver el problema de la Torre de Hanoi esperando en línea.

Python, utilice la programación de algoritmos recursivos para resolver el problema de la Torre de Hanoi esperando en línea.

Este es un ejemplo que viene con el sistema Python3. Esto es probablemente lo que significa. Originalmente tenía 6 placas, pero se cambió a 4 según su solicitud.

No hay ningún problema con el algoritmo recursivo y la descripción es muy detallada;) #!/usr/bin/env?python3

from?turtle?import?*

class? Disco(Tortuga):

def?__init__(self, ?n):

Tortuga.__init__(self, ?shape="cuadrado", ?visible=False)

self.pu()

self.shapesize(1.5,?n*1.5,?2)?#?square--gt;rectangle

self.fillcolor( n/6.,? 0,?1-n/6.)

self.st()

clase?Torre(lista):

" ¿Torre de Hanoi,?una ?subclase?de?lista?de?tipos?integrada"

def?__init__(self, ?x):

"crear?una?torre?vacía? torre.?x?es ?x-posición?de?peg"

self.x?=?x

def?push(self,?d):

d.setx (self.x)

d.sety(-150 34*len(self))

self.append(d)

def?pop(self ):

d?=?list.pop(self)

d.sety(150)

return?d

def ?hanoi(n,?from_,?with_,?to_):

if?n?gt;?0:

hanoi(n-1, ?from_,?to_, ?with_)

to_.push(from_.pop())

hanoi(n-1, ?with_, ?from_, ?to_)

def ?play():

onkey(Ninguno, "espacio")

clear()

prueba:

hanoi(6, ?t1,?t2,?t3)

write("presione?STOP?botón?para?salir", align="center",?font=("Mensajero", ?16,?"bold "))

excepto?Terminator:

pasar?#?turtledemo?user?pressed?STOP

def?main() :

global?t1,?t2,?t3

ht();?penup();?goto(0,?-225)#?escritor?tortuga

t1?=?Torre(-250)

t2?=?Torre(0)

t3?=?Torre(250)

#?hacer?torre? de?6?discos

para?i?en?rango(4,0,-1):

t1.push(Disco(i))

#?preparar?spartanic?user?interfaz?;-)

escribir("presionar?barra espaciadora?para?iniciar?ga

yo", align="center",?font=("Courier",?16,?"bold"))

onkey(play,?"space")

escucha ()

return?"EVENTLOOP"

if?__name__=="__main__":

msg?=?main()

imprimir(msj)

bucle principal()