Skip to content

Commit

Permalink
Merge pull request #6123 from Jesusway69/main
Browse files Browse the repository at this point in the history
#36 - Python
  • Loading branch information
Roswell468 authored Sep 16, 2024
2 parents 12b6c6f + 549b8ae commit fb37d59
Showing 1 changed file with 122 additions and 0 deletions.
122 changes: 122 additions & 0 deletions Roadmap/36 - EL SOMBRERO SELECCIONADOR/python/JesusWay69.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
import os, platform, random

if (platform.platform().startswith("macOS") or platform.platform().startswith("Linux")):
os.system('clear')
else:
os.system('cls')


""" * EJERCICIO:
* Cada 1 de septiembre, el Hogwarts Express parte hacia la escuela
* de programación de Hogwarts para magos y brujas del código.
* En ella, su famoso sombrero seleccionador ayuda a los programadores
* a encontrar su camino...
* Desarrolla un programa que simule el comportamiento del sombrero.
* Requisitos:
* 1. El sombrero realizará 10 preguntas para determinar la casa del alumno.
* 2. Deben existir 4 casas. Por ejemplo: Frontend, Backend, Mobile y Data.
* (Puedes elegir las que quieras)
* Acciones:
* 1. Crea un programa que solicite el nombre del alumno y realice 10
* preguntas, con cuatro posibles respuestas cada una.
* 2. Cada respuesta asigna puntos a cada una de las casas (a tu elección).
* 3. Una vez finalizado, el sombrero indica el nombre del alumno
* y a qué casa pertenecerá (resuelve el posible empate de manera aleatoria,
* pero indicándole al alumno que la decisión ha sido complicada)."""


houses_score = [0,0,0,0]
houses_dict = {"Frontend":0, "Backend":0, "Mobile":0 , "Data":0}

points_distribution = [{1:[1,4,2,6],2:[1,6,2,4],3:[1,4,6,2],4:[6,1,4,2]},
{1:[2,4,6,1],2:[6,1,4,2],3:[1,4,2,6],4:[2,6,1,4]},
{1:[1,2,4,6],2:[6,1,4,2],3:[1,6,2,4],4:[1,2,6,4]},
{1:[1,4,6,2],2:[1,4,2,6],3:[1,6,4,2],4:[6,1,4,2]},
{1:[1,6,2,4],2:[2,1,6,4],3:[6,2,4,1],4:[2,1,4,6]},
{1:[1,6,2,4],2:[6,1,4,2],3:[1,4,2,6],4:[4,1,6,2]},
{1:[1,6,2,4],2:[6,2,4,1],3:[1,4,2,6],4:[4,1,6,2]},
{1:[1,6,4,2],2:[2,4,1,6],3:[4,2,6,1],4:[6,2,4,1]},
{1:[6,2,1,4],2:[4,2,1,6],3:[4,6,1,2],4:[1,4,6,2]},
{1:[6,1,4,2],2:[2,6,4,1],3:[4,2,6,1],4:[2,1,4,6]}]

questions = {"\nPregunta 1: ¿Cual de estas definiciones se ajusta más a tu personalidad?":
["1 - Analítico, me gusta tener todo perféctamente calculado",
"2 - Introvertido, me gusta tener perfil bajo y trabajar en la sombra",
"3 - Nómada digital, me gusta viajar pero estar siempre conectado",
"4 - Creativo, me gusta enseñar mis obras y disfruto con el estilo"],

"\nPregunta 2: ¿Cual de estas tecnologías te gusta más?":
["1 - Kotlin", "2 - CSS", "3 - MySQL", "4 - Python"],

"\nPregunta 3: ¿Cual de estos dispositivos portátiles preferirías como regalo?":
["1 - Un Chromebook", "2 - Un iPad con apple pencil", "3 - Un laptop con Arch Linux", "4 - Un smartphone de gama alta"],

"\nPregunta 4: ¿Cual de estas asignaturas te gusta o te gustó más estudiar?":
["1 - Telecomunicaciones", "2 - Matemáticas", "3 - Robótica", "4 - Dibujo artístico"],

"\nPregunta 5: ¿Cual de 4 películas según tu personalidad crees que más se adapte a ti por temática?, (si no la has visto busca la sinopsis)":
["1 - El indomable will Hunting--back", "2 - Her--mobile", "3 - Ghost in the shell--front", "4 - Moneyball--data"],

"\nPregunta 6: ¿Cual de estos coches crees que va mejor contigo?":["1 - Cualquier utilitario barato, funcional y discreto",
"2 - Uno con estilo tipo Fiat 500 o Mini Cooper", "3 - El que mejor relación específica tenga entre CV/Cilindrada/Consumo",
"4 - Un Tesla o similar, que sea eléctrico y con conectividad de todo tipo con mi smartphone a bordo y en remoto"],

"\nPregunta 7: ¿Cual de estas carreras hubieses elegido de no haber sido la de informática?":["1 - Cualquier otra ingeniería",
"2 - Bellas artes", "3 - Sin duda administración de empresas", "4 - Si existe, alguna que estudie nanotecnología"],

"\nPregunta 8: Otra de tecnologías , ¿Cual de estas te gusta más?":["1 - Java", "2 - MongoDB", "3 - Swift", "4 - Tailwind"],

"\nPregunta 9: ¿Qué programa/aplicación de estas te gusta o usas más?":["1 - Google Chrome", "2 - PowerBI", "3 - VScode", "4 - Android Studio"],

"\nPregunta 10: ¿Cual de estas características de la marca Apple crees que es más importante en su éxito?":
["1 - Su interfaz visual , el diseño de sus dispositivos, su enfoque hacia el mundo creativo y visual y su framework gráfico SwiftUI",
"2 - Su lenguaje propio Swift y lo buenos y productivos que son sus ordenadores para trabajo con cualquier lenguaje de programación en general"
"3 - Sus dispositivos y los sistemas operativos iOS, IpadOS, watchOS, tvOS y sobre todo la joya de la corona, el iPhone",
"4 - Su capacidad de innovación y de mantenerse siempre en los ranking de ventas, 9 de cada 10 personas en el mundo conocen a Apple"]
}


name = input("introduzca su nombre: ").title()

def points_management(answer:int, round:int):
distribution_question:dict = points_distribution[round-1]
distribution_answer:list = distribution_question[answer]
for points in range (0,len(houses_score),1):

houses_score[points] = houses_score[points] + distribution_answer[points]

def quest_printer(questions:dict):
round = 0
for question in list(questions.keys()):
print(question)
for answers in questions[question]:
print(answers)
answer = input("Elija una de las 4 opciones--> ")
while not answer.isdigit() or int(answer) < 1 or int(answer) > 4:
print("Sólo se pueden introducir números del 1 al 4, pruebe de nuevo")
answer = input("Elija una de las 4 opciones--> ")

round += 1
points_management(int(answer), round)

quest_printer(questions)

tie = False
for result in houses_score:
while houses_score.count(result) > 1:
my_bool = random.randint(0, 1)
bool(my_bool)
if bool:
result -= 1
tie = True

houses_dict["Frontend"] = houses_score[0]
houses_dict["Backend"] = houses_score[1]
houses_dict["Mobile"] = houses_score[2]
houses_dict["Data"] = houses_score[3]
win = max(houses_dict.items(), key=lambda x: x[1])[0]

print(f"Por las respuestas que has dado {name} parece que el sector de programación que más se adapta a ti es el de {win}")
if tie:
print("Pero la decisión ha sido difícil")

0 comments on commit fb37d59

Please sign in to comment.