1
+
2
+ import random
3
+
4
+ # Definimos las casas
5
+ casas = ["Frontend" , "Backend" , "Mobile" , "Data" ]
6
+
7
+ # Definimos un diccionario para almacenar los puntos de cada casa
8
+ puntos = {casa : 0 for casa in casas }
9
+
10
+ # Preguntas y opciones
11
+ preguntas = [
12
+ {
13
+ "pregunta" : "¿Cuál es tu lenguaje de programación favorito?" ,
14
+ "opciones" : {
15
+ "a" : ("JavaScript" , "Frontend" ),
16
+ "b" : ("Python" , "Backend" ),
17
+ "c" : ("Swift" , "Mobile" ),
18
+ "d" : ("R" , "Data" )
19
+ }
20
+ },
21
+ {
22
+ "pregunta" : "¿Qué tipo de proyectos te gusta más desarrollar?" ,
23
+ "opciones" : {
24
+ "a" : ("Aplicaciones web" , "Frontend" ),
25
+ "b" : ("Sistemas distribuidos" , "Backend" ),
26
+ "c" : ("Aplicaciones móviles" , "Mobile" ),
27
+ "d" : ("Análisis de datos" , "Data" )
28
+ }
29
+ },
30
+ {
31
+ "pregunta" : "¿Cuál es tu herramienta preferida para desarrollo?" ,
32
+ "opciones" : {
33
+ "a" : ("React" , "Frontend" ),
34
+ "b" : ("Django" , "Backend" ),
35
+ "c" : ("Flutter" , "Mobile" ),
36
+ "d" : ("Pandas" , "Data" )
37
+ }
38
+ },
39
+ {
40
+ "pregunta" : "¿Qué es lo que más valoras en un proyecto?" ,
41
+ "opciones" : {
42
+ "a" : ("Interfaz de usuario" , "Frontend" ),
43
+ "b" : ("Rendimiento y escalabilidad" , "Backend" ),
44
+ "c" : ("Compatibilidad en dispositivos" , "Mobile" ),
45
+ "d" : ("Información y análisis" , "Data" )
46
+ }
47
+ },
48
+ {
49
+ "pregunta" : "¿Cuál es tu entorno de trabajo favorito?" ,
50
+ "opciones" : {
51
+ "a" : ("Navegador" , "Frontend" ),
52
+ "b" : ("Servidor" , "Backend" ),
53
+ "c" : ("Dispositivo móvil" , "Mobile" ),
54
+ "d" : ("Ambiente de análisis" , "Data" )
55
+ }
56
+ },
57
+ {
58
+ "pregunta" : "¿Qué prefieres aprender en tu tiempo libre?" ,
59
+ "opciones" : {
60
+ "a" : ("Nuevas tecnologías web" , "Frontend" ),
61
+ "b" : ("Arquitectura de software" , "Backend" ),
62
+ "c" : ("Desarrollo de apps" , "Mobile" ),
63
+ "d" : ("Machine learning" , "Data" )
64
+ }
65
+ },
66
+ {
67
+ "pregunta" : "¿En qué tipo de equipo te gustaría trabajar?" ,
68
+ "opciones" : {
69
+ "a" : ("Equipo de UX/UI" , "Frontend" ),
70
+ "b" : ("Equipo de DevOps" , "Backend" ),
71
+ "c" : ("Equipo de desarrollo móvil" , "Mobile" ),
72
+ "d" : ("Equipo de ciencia de datos" , "Data" )
73
+ }
74
+ },
75
+ {
76
+ "pregunta" : "¿Qué consideras más desafiante?" ,
77
+ "opciones" : {
78
+ "a" : ("Diseño responsivo" , "Frontend" ),
79
+ "b" : ("Optimización de consultas" , "Backend" ),
80
+ "c" : ("Compatibilidad multiplataforma" , "Mobile" ),
81
+ "d" : ("Limpieza de datos" , "Data" )
82
+ }
83
+ },
84
+ {
85
+ "pregunta" : "¿Cuál es tu prioridad en un proyecto?" ,
86
+ "opciones" : {
87
+ "a" : ("Experiencia de usuario" , "Frontend" ),
88
+ "b" : ("Seguridad" , "Backend" ),
89
+ "c" : ("Accesibilidad" , "Mobile" ),
90
+ "d" : ("Precisión de los resultados" , "Data" )
91
+ }
92
+ },
93
+ {
94
+ "pregunta" : "¿Qué te motiva más?" ,
95
+ "opciones" : {
96
+ "a" : ("Crear interfaces atractivas" , "Frontend" ),
97
+ "b" : ("Resolver problemas complejos" , "Backend" ),
98
+ "c" : ("Desarrollar apps innovadoras" , "Mobile" ),
99
+ "d" : ("Descubrir patrones en datos" , "Data" )
100
+ }
101
+ }
102
+ ]
103
+
104
+ # Solicitar el nombre del alumno
105
+ nombre_alumno = input ("¡Bienvenido al sombrero seleccionador! ¿Cuál es tu nombre? " )
106
+
107
+ # Realizar las preguntas
108
+ for idx , pregunta in enumerate (preguntas ):
109
+ print (f"\n Pregunta { idx + 1 } : { pregunta ['pregunta' ]} " )
110
+ for opcion , (respuesta , casa ) in pregunta ["opciones" ].items ():
111
+ print (f" { opcion } . { respuesta } " )
112
+
113
+ eleccion = input ("Elige una opción (a, b, c, d): " ).lower ()
114
+
115
+ while eleccion not in pregunta ["opciones" ]:
116
+ eleccion = input ("Opción inválida. Por favor, elige entre a, b, c, d: " ).lower ()
117
+
118
+ # Asignar puntos a la casa correspondiente
119
+ casa_asignada = pregunta ["opciones" ][eleccion ][1 ]
120
+ puntos [casa_asignada ] += 1
121
+
122
+ # Determinar la casa con mayor puntaje
123
+ max_puntos = max (puntos .values ())
124
+ casas_ganadoras = [casa for casa , puntaje in puntos .items () if puntaje == max_puntos ]
125
+
126
+ # Resolver empates si es necesario
127
+ if len (casas_ganadoras ) > 1 :
128
+ casa_final = random .choice (casas_ganadoras )
129
+ print (f"\n ¡Vaya, { nombre_alumno } ! El sombrero ha tenido una decisión difícil..." )
130
+ else :
131
+ casa_final = casas_ganadoras [0 ]
132
+
133
+ # Mostrar el resultado final
134
+ print (f"\n { nombre_alumno } , has sido seleccionado para la casa de { casa_final } !" )
0 commit comments