Skip to content

Instantly share code, notes, and snippets.

@yorjaggy
Created November 5, 2022 15:26
Show Gist options
  • Save yorjaggy/f9ec2daa1199e8d576f667fe587ea58f to your computer and use it in GitHub Desktop.
Save yorjaggy/f9ec2daa1199e8d576f667fe587ea58f to your computer and use it in GitHub Desktop.
#Toores de hanoi de 3 discos
#Tres discos de mayor a menor
grande = 30
mediano = 20
pequeno = 10
#Tres postes enumerados de izquierda a derecha
poste1 = [grande, mediano, pequeno]
poste2 = []
poste3 = []
#Miscelanea
run = True
movimientos = 0
tamanoError = 'No puede haber un disco grande sobre uno más pequeño'
while run:
print('\n', 'Postes:\n', poste1, '\n', poste2, '\n', poste3, '\n')
posteOrigen = int(input('¿En qué poste está el disco que quieres mover? '))
posteDestino = int(input('¿A qué poste lo quieres mover? '))
#Postes de origen(Desde que poste se quiere mover un disco)
if posteOrigen==1:
disco = poste1.pop()
if posteOrigen==2:
disco = poste2.pop()
if posteOrigen==3:
disco = poste3.pop()
#Postes de Destino(A que poste se quiere mover un disco)
#Poste de Destino 1
if posteDestino == 1:
if len(poste1) == 0:
poste1.append(disco)
elif poste1[-1] > disco:
poste1.append(disco)
elif poste1[-1] < disco:
print('\n', tamanoError)
if posteOrigen == 2:
poste2.append(disco)
elif posteOrigen == 3:
poste3.append(disco)
#Poste de Destino 2
if posteDestino == 2:
if len(poste2) == 0:
poste2.append(disco)
elif poste2[-1] > disco:
poste2.append(disco)
elif poste2[-1] < disco:
print('\n', tamanoError)
if posteOrigen == 1:
poste1.append(disco)
elif posteOrigen == 3:
poste3.append(disco)
#Poste de Destino 3
if posteDestino == 3:
if len(poste3) == 0:
poste3.append(disco)
elif poste3[-1] > disco:
poste3.append(disco)
elif poste3[-1] < disco:
print('\n', tamanoError)
if posteOrigen == 1:
poste1.append(disco)
elif posteOrigen == 2:
poste2.append(disco)
#Agrega +1 movimiento en cada iteracion
movimientos += 1
print ('\n', 'Moviminetos: ', movimientos, '\n')
#Fin del juego
if poste3 == [grande, mediano, pequeno]:
run = False
print('Perfecto!', '\n', 'Terminaste con ', movimientos, ' movimientos')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment