forked from mouredev/retos-programacion-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mouredev.py
127 lines (96 loc) · 4.39 KB
/
mouredev.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import random
def create_house() -> (list, list):
house = [list(["⬜️"] * 4) for _ in range(4)]
if random.choice([True, False]):
# Columnas perímetro
door = [random.randint(0, 3), random.choice([0, 3])]
else:
# Filas perímetro
door = [random.choice([0, 3]), random.randint(0, 3)]
house[door[0]][door[1]] = "🚪"
def generate_candy(door: list) -> list:
candy = [random.randint(0, 3), random.randint(0, 3)]
if candy[0] == door[0] and candy[1] == door[1]:
return generate_candy(door)
return candy
candy = generate_candy(door)
house[candy[0]][candy[1]] = "🍭"
for row in house:
print("".join(map(str, row)))
return house, door
def move(position: list) -> list:
row, col = position[0], position[1]
movements = "N S E O "
if row == 0: movements = movements.replace("N ", "")
if row == 3: movements = movements.replace("S ", "")
if col == 0: movements = movements.replace("O ", "")
if col == 3: movements = movements.replace("E ", "")
movement = input(f"¿Hacia dónde te quieres desplazar [ {movements}]?: ").upper()
if movement in movements:
if movement == "N": position = [row - 1, col]
elif movement == "S": position = [row + 1, col]
elif movement == "E": position = [row, col + 1]
elif movement == "O": position = [row, col - 1]
return position
else:
print("Desplazamiento incorrecto. Selecciona una de las opciones válidas.")
return move(position)
def riddle():
riddles = [
("¿Qué lenguaje de programación fue creado por Guido van Rossum?", "Python"),
("¿Cuál es el sistema operativo de código abierto más popular?", "Linux"),
("¿Qué compañía desarrolló el sistema operativo Windows?", "Microsoft"),
("¿Qué lenguaje de programación se utiliza principalmente para el desarrollo web del lado del cliente?", "JavaScript"),
("¿Cuál es el protocolo estándar para enviar correos electrónicos?", "SMTP"),
("¿Qué significa HTML?", "HyperText Markup Language"),
("¿Cuál es la base de datos relacional de código abierto más popular?", "MySQL"),
("¿Qué significa URL?", "Uniform Resource Locator"),
("¿Qué compañía desarrolló el lenguaje de programación Java?", "Sun"),
("¿Qué estructura de datos es LIFO?", "Pila"),
("¿Qué lenguaje de programación fue diseñado por Bjarne Stroustrup?", "C++"),
("¿Qué significa HTTP?", "HyperText Transfer Protocol"),
("¿Qué significa SQL?", "Structured Query Language"),
("¿Cuál es el lenguaje de hojas de estilo utilizado en la web?", "CSS"),
("¿Qué significa API?", "Application Programming Interface"),
("¿Qué estructura de datos es FIFO?", "Cola"),
("¿Cuál es el lenguaje de programación más antiguo aún en uso?", "Fortran"),
("¿Qué significa IDE?", "Integrated Development Environment"),
("¿Qué compañía es la creadora del sistema operativo macOS?", "Apple"),
("¿Qué lenguaje se utiliza comúnmente para el desarrollo de aplicaciones Android?", "Kotlin")
]
current_riddle = riddles[random.randint(0, len(riddles) - 1)]
while True:
answer = input(f"{current_riddle[0]}: ")
if answer.lower() == current_riddle[1].lower():
print("Respuesta correcta!\n")
return
else:
print("Respuesta incorrecta!\n")
house, door = create_house()
position = door
print(f"Posición inicial: {position}")
print("""
👻 BoooOOOoOoo!
Si quieres encontrar los dulces 🍭 de la casa encantada 🏰
tendrás que buscarlos a través de sus habitaciones.
Pero recuerda, no podrás moverte si antes no respondes
correctamente a su enigma.
""")
while True:
position = move(position)
print(f"Posición: {position}\n")
house_room = house[position[0]][position[1]]
if house_room == "⬜️":
print("Responde correctamente a esta pregunta.")
riddle()
ghost = random.randint(1, 10) == 1
if ghost:
print("👻 BoooOOOoOoo! Para salir de esta habitación deberás responder otra pregunta más.")
riddle()
elif house_room == "🍭":
print("""
👻 BoooOOOoOoo!
Has encontrado los dulces 🍭 y escapado de la casa encantada 🏰
Feliz Halloween! 🎃
""")
break