| 
 | 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