Created
November 5, 2022 15:26
-
-
Save yorjaggy/f9ec2daa1199e8d576f667fe587ea58f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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