forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mouredev.py
253 lines (241 loc) · 8.36 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
import random
houses = {
"Frontend": 0,
"Backend": 0,
"Mobile": 0,
"Data": 0
}
questions = [
{
"question": "¿Qué tipo de proyectos te interesa más desarrollar?",
"answers": [
{
"option": "Aplicaciones móviles nativas para múltiples plataformas.",
"house": "Mobile"
},
{
"option": "Interfaces visualmente atractivas y responsivas.",
"house": "Frontend"
},
{
"option": "Procesamiento y análisis de grandes volúmenes de datos.",
"house": "Data"
},
{
"option": "Sistemas robustos y optimización de rendimiento del servidor.",
"house": "Backend"
}
]
},
{
"question": "¿Qué aspecto del desarrollo disfrutas más?",
"answers": [
{
"option": "Resolver problemas complejos de lógica y escalabilidad.",
"house": "Backend"
},
{
"option": "Analizar datos para tomar decisiones basadas en estadísticas.",
"house": "Data"
},
{
"option": "Crear aplicaciones móviles eficientes y funcionales.",
"house": "Mobile"
},
{
"option": "Trabajar en el diseño y la experiencia de usuario.",
"house": "Frontend"
}
]
},
{
"question": "¿Qué herramienta prefieres usar en tu día a día?",
"answers": [
{
"option": "Kotlin o Swift para desarrollar apps móviles nativas.",
"house": "Mobile"
},
{
"option": "Python o R para análisis de datos.",
"house": "Data"
},
{
"option": "Frameworks como React o Angular.",
"house": "Frontend"
},
{
"option": "Lenguajes como Node.js o Python para la gestión de servidores.",
"house": "Backend"
}
]
},
{
"question": "¿Cómo te ves en un equipo de desarrollo?",
"answers": [
{
"option": "Modelando datos y construyendo dashboards de análisis.",
"house": "Data"
},
{
"option": "Encargado de la lógica del servidor y las APIs.",
"house": "Backend"
},
{
"option": "Desarrollando la interfaz y funcionalidad de una app móvil.",
"house": "Mobile"
},
{
"option": "Diseñando las interacciones y los componentes visuales.",
"house": "Frontend"
}
]
},
{
"question": "¿Qué te motiva más al trabajar en un proyecto?",
"answers": [
{
"option": "Ver cómo el diseño cobra vida en la pantalla.",
"house": "Frontend"
},
{
"option": "Descubrir insights a partir del análisis de datos.",
"house": "Data"
},
{
"option": "Optimizar el rendimiento y escalabilidad del sistema.",
"house": "Backend"
},
{
"option": "Lograr que una aplicación móvil funcione perfectamente en cualquier dispositivo.",
"house": "Mobile"
}
]
},
{
"question": "¿Cuál es tu enfoque al aprender nuevas tecnologías?",
"answers": [
{
"option": "Explorar técnicas avanzadas de análisis de datos y machine learning.",
"house": "Data"
},
{
"option": "Aprender sobre nuevas arquitecturas y lenguajes de servidor.",
"house": "Backend"
},
{
"option": "Probar nuevas plataformas y herramientas para desarrollo móvil.",
"house": "Mobile"
},
{
"option": "Experimentar con nuevas librerías y frameworks de interfaz de usuario.",
"house": "Frontend"
}
]
},
{
"question": "¿Qué tipo de desafíos disfrutas más resolver?",
"answers": [
{
"option": "Solución de problemas de concurrencia y carga en servidores.",
"house": "Backend"
},
{
"option": "Optimización de interfaces para que se vean bien en cualquier dispositivo.",
"house": "Frontend"
},
{
"option": "Análisis de grandes volúmenes de datos para detectar patrones ocultos.",
"house": "Data"},
{
"option": "Creación de experiencias de usuario fluídas en dispositivos móviles.",
"house": "Mobile"
}
]
},
{
"question": "¿Cómo te gusta medir el éxito de tu trabajo?",
"answers": [
{
"option": "Por la estabilidad y rapidez del sistema bajo carga.",
"house": "Backend"
},
{
"option": "Mediante la satisfacción del usuario con la interfaz visual.",
"house": "Frontend"
},
{
"option": "Por la fluidez y buen rendimiento de la app móvil en diferentes dispositivos.",
"house": "Mobile"},
{
"option": "Por la precisión y relevancia de los resultados obtenidos en el análisis de datos.",
"house": "Data"
}
]
},
{
"question": "¿Qué te resulta más interesante al trabajar con tecnologías emergentes?",
"answers": [
{
"option": "Trabajar con tecnologías de big data o inteligencia artificial.",
"house": "Data"
},
{
"option": "Explorar nuevas arquitecturas para mejorar el rendimiento del servidor.",
"house": "Backend"
},
{
"option": "Probar nuevas herramientas y metodologías para mejorar el diseño y la UX.",
"house": "Frontend"
},
{
"option": "Desarrollar apps móviles que aprovechen nuevas capacidades de hardware.",
"house": "Mobile"
}
]
},
{
"question": "¿Cómo te enfrentas a un nuevo problema en un proyecto?",
"answers": [
{
"option": "Buscando patrones y soluciones basadas en análisis de datos.",
"house": "Data"
},
{
"option": "Replanteando la estructura visual y funcional de la interfaz.",
"house": "Frontend"
},
{
"option": "Explorando cómo mejorar la experiencia del usuario en dispositivos móviles.",
"house": "Mobile"
},
{
"option": "Analizando la estructura de datos y la lógica del backend.",
"house": "Backend"
}
]
}
]
print("\n¡Bienvenido a Hogwarts, la escuela de programación para magos y brujas del código!")
print("El sombrero seleccionador decidirá cuál es tu casa como programador.")
name = input("\n¿Cuál es tu nombre? ")
for index, question in enumerate(questions):
print(f"\nPregunta {index + 1}: {question["question"]}\n")
for i, answer in enumerate(question["answers"]):
print(f"{i + 1}. {answer["option"]}")
choice = int(input("\nSelecciona una respuesta entre 1 y 4: "))
selected_answer = question["answers"][choice - 1]
houses[selected_answer["house"]] += 1
assigned_house = max(houses, key=houses.get)
scores = list(houses.values())
if scores.count(max(scores)) > 1:
possible_houses = [
house for house,
points in houses.items() if points == max(scores)
]
assigned_house = random.choice(possible_houses)
print(
f"""\nHmmmm... Ha sido una decisión muy complicada, {
name}.\n¡Pero finalmente tu casa será {assigned_house}!"""
)
else:
print(f"\nEnhorabuena, {name}.\n¡Tu casa será {assigned_house}!")