|
| 1 | +# #33 RESCATANDO A MICKEY |
| 2 | +#### Dificultad: Fácil | Publicación: 12/08/24 | Corrección: 19/08/24 |
| 3 | + |
| 4 | +""" |
| 5 | +/* |
| 6 | + * EJERCICIO: |
| 7 | + * ¡Disney ha presentado un montón de novedades en su D23! |
| 8 | + * Pero... ¿Dónde está Mickey? |
| 9 | + * Mickey Mouse ha quedado atrapado en un laberinto mágico |
| 10 | + * creado por Maléfica. |
| 11 | + * Desarrolla un programa para ayudarlo a escapar. |
| 12 | + * Requisitos: |
| 13 | + * 1. El laberinto está formado por un cuadrado de 6x6 celdas. |
| 14 | + * 2. Los valores de las celdas serán: |
| 15 | + * - ⬜️ Vacío |
| 16 | + * - ⬛️ Obstáculo |
| 17 | + * - 🐭 Mickey |
| 18 | + * - 🚪 Salida |
| 19 | + * Acciones: |
| 20 | + * 1. Crea una matriz que represente el laberinto (no hace falta |
| 21 | + * que se genere de manera automática). |
| 22 | + * 2. Interactúa con el usuario por consola para preguntarle hacia |
| 23 | + * donde se tiene que desplazar (arriba, abajo, izquierda o derecha). |
| 24 | + * 3. Muestra la actualización del laberinto tras cada desplazamiento. |
| 25 | + * 4. Valida todos los movimientos, teniendo en cuenta los límites |
| 26 | + * del laberinto y los obtáculos. Notifica al usuario. |
| 27 | + * 5. Finaliza el programa cuando Mickey llegue a la salida. |
| 28 | + */ |
| 29 | +""" |
| 30 | + |
| 31 | +import os |
| 32 | +import time |
| 33 | + |
| 34 | +laberinto= [ |
| 35 | + ["🐭","⬜️","⬜️","⬛️","⬜️","⬛️"], |
| 36 | + ["⬜️","⬛️","⬛️","⬜️","⬜️","⬛️"], |
| 37 | + ["⬜️","⬜️","⬛️","⬛️","⬛️","⬜️"], |
| 38 | + ["⬛️","⬜️","⬜️","⬛️","⬜️","⬜️"], |
| 39 | + ["⬜️","⬜️","⬜️","⬜️","⬜️","⬜️"], |
| 40 | + ["⬛️","⬜️","⬛️","⬜️","⬜️","🚪"] |
| 41 | +] |
| 42 | + |
| 43 | +def formatear_laberinto(): |
| 44 | + for linea in laberinto: |
| 45 | + print("".join(linea)) |
| 46 | + |
| 47 | + print() |
| 48 | + |
| 49 | +print( "Mickey Mouse ha quedado atrapado en un laberinto mágico creado por Maléfica.") |
| 50 | + |
| 51 | +coordenadas_mickey:list = [0,0] |
| 52 | + |
| 53 | +while True: |
| 54 | + formatear_laberinto() |
| 55 | + |
| 56 | + print(""" |
| 57 | + (W)- Arriba, |
| 58 | + (S)- Abajo, |
| 59 | + (A)- Izquierda, |
| 60 | + (D)- Derecha |
| 61 | + """) |
| 62 | + accion:str = input("Elige el movimiento que hara Mickey Mouse para salir del laberinto: ") |
| 63 | + |
| 64 | + linea_actual, columna_actual = coordenadas_mickey |
| 65 | + linea_nueva, columna_nueva = linea_actual, columna_actual |
| 66 | + |
| 67 | + match accion.lower(): |
| 68 | + case "w": |
| 69 | + linea_nueva = linea_actual - 1 |
| 70 | + case "s": |
| 71 | + linea_nueva = linea_actual + 1 |
| 72 | + |
| 73 | + case "a": |
| 74 | + columna_nueva = columna_actual - 1 |
| 75 | + |
| 76 | + case "d": |
| 77 | + columna_nueva = columna_actual + 1 |
| 78 | + case _: |
| 79 | + print("Dirección no válida.\n") |
| 80 | + continue |
| 81 | + |
| 82 | + if linea_nueva < 0 or columna_nueva < 0 or linea_nueva > 5 or columna_nueva > 5: |
| 83 | + print("este movimiento no es posible") |
| 84 | + time.sleep(1) |
| 85 | + os.system("cls") |
| 86 | + continue |
| 87 | + |
| 88 | + elif "⬛️" == laberinto[linea_nueva][columna_nueva]: |
| 89 | + print("En este camino hay un obstaculo, no puedes pasar, busca otro camino.") |
| 90 | + print("") |
| 91 | + time.sleep(1) |
| 92 | + os.system("cls") |
| 93 | + continue |
| 94 | + |
| 95 | + else: |
| 96 | + if "🚪" == laberinto[linea_nueva] [columna_nueva]: |
| 97 | + print("Felicidades, has logrado escapar del laberinto") |
| 98 | + break |
| 99 | + |
| 100 | + else: |
| 101 | + laberinto[linea_actual] [columna_actual] = "⬜" |
| 102 | + laberinto[linea_nueva] [columna_nueva] = "🐭" |
| 103 | + coordenadas_mickey = [linea_nueva , columna_nueva] |
| 104 | + time.sleep(1.5) |
| 105 | + os.system("cls") |
| 106 | + continue |
0 commit comments