예제 #1
0
def resuelveHanoiAux(n, desde, hacia, otra):
    if n > 1:
        resuelveHanoiAux(n - 1, desde, otra, hacia)
        torreHanoi.mover(desde, hacia)
        resuelveHanoiAux(n - 1, otra, hacia, desde)
    else:
        torreHanoi.mover(desde, hacia)


def resuelveHanoi(n):
    resuelveHanoiAux(n, 0, 2, 1)


n = 19  # cantidad de discos
torreHanoi = Hanoi()
for i in range(n):
    torreHanoi.poner(0, n - 1 - i)
# for i in range(n):
# 	print torreHanoi.tope(0)
# 	torreHanoi.sacar(0)
# for i in range(n):
# 	torreHanoi.poner(0,n-1-i)

resuelveHanoi(n)
for i in range(3):
    print torreHanoi.vacio(i)

for i in range(n):
    print torreHanoi.tope(2)
    torreHanoi.sacar(2)