Skip to content

Commit 475583f

Browse files
committed
mouredev#36 - python
1 parent 3e81dd6 commit 475583f

File tree

1 file changed

+146
-0
lines changed
  • Roadmap/36 - EL SOMBRERO SELECCIONADOR/python

1 file changed

+146
-0
lines changed
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# #36 EL SOMBRERO SELECCIONADOR
2+
#### Dificultad: Fácil | Publicación: 02/09/24 | Corrección: 09/09/24
3+
4+
5+
"""
6+
/*
7+
* EJERCICIO:
8+
* Cada 1 de septiembre, el Hogwarts Express parte hacia la escuela
9+
* de programación de Hogwarts para magos y brujas del código.
10+
* En ella, su famoso sombrero seleccionador ayuda a los programadores
11+
* a encontrar su camino...
12+
* Desarrolla un programa que simule el comportamiento del sombrero.
13+
* Requisitos:
14+
* 1. El sombrero realizará 10 preguntas para determinar la casa del alumno.
15+
* 2. Deben existir 4 casas. Por ejemplo: Frontend, Backend, Mobile y Data.
16+
* (Puedes elegir las que quieras)
17+
* Acciones:
18+
* 1. Crea un programa que solicite el nombre del alumno y realice 10
19+
* preguntas, con cuatro posibles respuestas cada una.
20+
* 2. Cada respuesta asigna puntos a cada una de las casas (a tu elección).
21+
* 3. Una vez finalizado, el sombrero indica el nombre del alumno
22+
* y a qué casa pertenecerá (resuelve el posible empate de manera aleatoria,
23+
* pero indicándole al alumno que la decisión ha sido complicada).
24+
*/
25+
"""
26+
27+
# Variables globales
28+
front_end = 0
29+
back_end = 0
30+
mobile = 0
31+
data = 0
32+
33+
34+
Preguntas = [
35+
"¿Qué tipo de trabajo disfrutas más?",
36+
"¿Qué tipo de herramientas prefieres usar en tu día a día?",
37+
"¿Qué lenguaje de programación te llama más la atención?",
38+
"¿Qué prefieres al resolver problemas?",
39+
"¿Qué consideras más importante en un proyecto?",
40+
"¿Qué tipo de desafíos te motivan más?",
41+
"¿Cómo te sientes al trabajar con interfaces visuales?",
42+
"¿Qué tipo de datos prefieres manejar?",
43+
"¿Cómo te ves trabajando en equipo?",
44+
"¿Qué te interesa más del mundo de la tecnología?"
45+
]
46+
47+
respuestas = [
48+
["Crear interfaces amigables para usuarios (UI/UX)",
49+
"Diseñar sistemas robustos y funcionales",
50+
"Crear aplicaciones móviles innovadoras",
51+
"Trabajar con grandes volúmenes de datos"],
52+
53+
["Editores de diseño visual",
54+
"Herramientas de línea de comandos y servidores",
55+
"Simuladores y entornos móviles",
56+
"Herramientas de análisis de datos y gráficas"],
57+
58+
["JavaScript o TypeScript",
59+
"Python o Java",
60+
"Swift o Kotlin",
61+
"SQL o R"],
62+
63+
["Soluciones que mejoren la experiencia del usuario",
64+
"Implementar lógica compleja",
65+
"Optimizar rendimiento en dispositivos móviles",
66+
"Encontrar patrones en datos"],
67+
68+
["La facilidad de uso",
69+
"La estabilidad y escalabilidad",
70+
"El diseño innovador",
71+
"La precisión y análisis"],
72+
73+
["Construir algo visualmente impactante",
74+
"Resolver problemas técnicos complejos",
75+
"Hacer que una app funcione en todos los dispositivos",
76+
"Desentrañar información útil de datos"],
77+
78+
["Me emociona crear interfaces atractivas",
79+
"Prefiero trabajar con la lógica detrás de la interfaz",
80+
"Me gusta la fluidez y simplicidad en móviles",
81+
"Quiero analizar datos para tomar decisiones"],
82+
83+
["Estructurados y bien organizados",
84+
"Cualquier tipo, siempre que el sistema sea funcional",
85+
"Fáciles de consumir y eficientes",
86+
"Datos masivos y complejos"],
87+
88+
["Colaborando activamente y compartiendo ideas",
89+
"Contribuyendo a construir sistemas sólidos",
90+
"Asegurando la calidad en diferentes plataformas",
91+
"Proporcionando insights claros a partir de los datos"],
92+
93+
["El diseño y la experiencia de usuario",
94+
"El backend y la infraestructura",
95+
"La movilidad y accesibilidad",
96+
"El impacto de los datos en la toma de decisiones"]
97+
]
98+
99+
def dar_puntos(valor: int):
100+
"""Asigna puntos a las casas dependiendo del valor."""
101+
global front_end, back_end, mobile, data # Usamos variables globales para modificarlas
102+
match valor:
103+
case 1:
104+
front_end += 1
105+
case 2:
106+
back_end += 1
107+
case 3:
108+
mobile += 1
109+
case 4:
110+
data += 1
111+
112+
def main():
113+
global front_end, back_end, mobile, data # Aseguramos modificar las globales
114+
print("Buenas futuro desarrollador, te vamos a hacer unas preguntas para ver en qué casa te quedas:")
115+
116+
for i in range(len(Preguntas)):
117+
print(f"\n{Preguntas[i]}") # Pregunta actual
118+
for j in range(4):
119+
print(f"{j + 1}. {respuestas[i][j]}") # Mostramos opciones empezando en 1
120+
121+
while True: # Ciclo para garantizar una entrada válida
122+
try:
123+
respuesta = int(input("Introduce la respuesta de acuerdo al índice (1-4): "))
124+
if 1 <= respuesta <= 4: # Verificamos que esté en el rango
125+
dar_puntos(respuesta) # Asignamos puntos
126+
break # Salimos del ciclo si la entrada es válida
127+
else:
128+
print("Por favor, introduce un número entre 1 y 4.")
129+
except ValueError:
130+
print("Entrada inválida. Introduce un número entre 1 y 4.")
131+
132+
# Determinamos la casa final
133+
print("\nResultados:")
134+
if front_end > back_end and front_end > mobile and front_end > data:
135+
print("Tú irás a la casa front_end.")
136+
elif back_end > front_end and back_end > mobile and back_end > data:
137+
print("Tú irás a la casa back_end.")
138+
elif mobile > front_end and mobile > back_end and mobile > data:
139+
print("Tú irás a la casa mobile.")
140+
elif data > front_end and data > back_end and data > mobile:
141+
print("Tú irás a la casa data.")
142+
else:
143+
print("Tu eres diferente, tu tienes que ir a la casa full-stack")
144+
145+
# Ejecutamos el programa
146+
main()

0 commit comments

Comments
 (0)