Skip to content

Commit

Permalink
Merge pull request mouredev#5716 from feltoxXx/main
Browse files Browse the repository at this point in the history
Reto mouredev#4,5,6,7 - Python
  • Loading branch information
Roswell468 authored Nov 13, 2023
2 parents 30ccb22 + fb03528 commit 26b3cff
Show file tree
Hide file tree
Showing 4 changed files with 147 additions and 0 deletions.
49 changes: 49 additions & 0 deletions Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/python/feltoxXx.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Reto #4: PRIMO, FIBONACCI Y PAR

#
#
# Escribe un programa que, dado un número, compruebe y muestre si es primo, fibonacci y par.
# Ejemplos:
# - Con el número 2, nos dirá: "2 es primo, fibonacci y es par"
# - Con el número 7, nos dirá: "7 es primo, no es fibonacci y es impar"
#


def es_primo(numero):
if numero < 2:
return False
for i in range(2, int(numero**0.5) + 1):
if numero % i == 0:
return False
return True

def es_fibonacci(numero):
# Un número es un cuadrado perfecto en la secuencia de Fibonacci si y solo si es mayor a 0 y (5 * n^2 + 4) o (5 * n^2 - 4) es un cuadrado perfecto
return numero > 0 and (((5 * numero**2 + 4)**0.5 % 1 == 0) or ((5 * numero**2 - 4)**0.5 % 1 == 0))

def es_par(numero):
return numero % 2 == 0

def main():
numero = int(input("Ingrese un número: "))

if es_primo(numero):
primo = "es primo"
else:
primo = "no es primo"

if es_fibonacci(numero):
fibonacci = "es fibonacci"
else:
fibonacci = "no es fibonacci"

if es_par(numero):
par = "par"
else:
par = "impar"

resultado = f"{numero} {primo}, {fibonacci} y es {par}"
print(resultado)

if __name__ == "__main__":
main()
12 changes: 12 additions & 0 deletions Retos/Reto #5 - HOLA MUNDO [Fácil]/python/feltoxXx.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Reto #5: ¡Hola Mundo!


#
# Escribe un !Hola Mundo! en todos los lenguajes de programación que puedas.
# Seguro que hay algún lenguaje que te llama la atención y nunca has utilizado,
# o quizás quieres dar tus primeros pasos... ¡Pues este es el momento!
#
# A ver quién se atreve con uno de esos lenguajes que no solemos ver por ahí...
#

print("Hola Mundo!")
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Reto #6: Piedra, Papel, Tijera, Lagarto, Spock

# Crea un programa que calcule quien gana más partidas al piedra,
# papel, tijera, lagarto, spock.
# - El resultado puede ser: "Player 1", "Player 2", "Tie" (empate)
# - La función recibe un listado que contiene pares, representando cada jugada.
# - El par puede contener combinaciones de "🗿" (piedra), "📄" (papel),
# "✂️" (tijera), "🦎" (lagarto) o "🖖" (spock).
# - Ejemplo. Entrada: [("🗿","✂️"), ("✂️","🗿"), ("📄","✂️")]. Resultado: "Player 2".
# - Debes buscar información sobre cómo se juega con estas 5 posibilidades.
#

def rock_paper_scissor_lizard_spock(games):
rules = {
"🗿": ["✂️", "🦎"],
"📄": ["🗿", "🖖"],
"✂️": ["📄", "🦎"],
"🦎": ["🖖", "📄"],
"🖖": ["🗿", "✂️"]
}

player_one = 0
player_two = 0

for player_one_game, player_two_game in games:
if player_one_game != player_two_game:
if player_two_game in rules[player_one_game]:
player_one += 1
else:
player_two += 1

return "Tie" if player_one == player_two else "Player 1" if player_one > player_two else "Player 2"

if __name__ == '__main__':
print(rock_paper_scissor_lizard_spock([("🗿", "✂️"), ("📄", "🗿"), ("✂️", "📄"), ("🦎", "🖖"), ("🖖", "🗿")]))
print(rock_paper_scissor_lizard_spock([("🗿", "🗿")]))
print(rock_paper_scissor_lizard_spock([("🗿", "📄"), ("✂️", "🗿"), ("📄", "✂️"), ("🖖", "🦎"), ("🦎", "📄")]))
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Reto #7: El sombrero seleccionador

#
# Crea un programa que simule el comportamiento del sombrero seleccionador del universo mágico de Harry Potter.
# - De ser posible realizará 5 preguntas (como mínimo) a través de la terminal.
# - Cada pregunta tendrá 4 respuestas posibles (también a selecciona una a través de terminal).
# - En función de las respuestas a las 5 preguntas deberás diseñar un algoritmo que coloque al alumno en una de las 4 casas de Hogwarts (Gryffindor, Slytherin , Hufflepuff y Ravenclaw)
# - Ten en cuenta los rasgos de cada casa para hacer las preguntas y crear el algoritmo seleccionador.
# Por ejemplo, en Slytherin se premia la ambición y la astucia.
#

def hacer_pregunta(pregunta, opciones):
print(pregunta)
for i, opcion in enumerate(opciones, 1):
print(f"{i}. {opcion}")

respuesta = input("Selecciona tu respuesta (1-4): ")
while not respuesta.isdigit() or int(respuesta) not in range(1, 5):
print("Respuesta no válida. Introduce un número del 1 al 4.")
respuesta = input("Selecciona tu respuesta (1-4): ")

return int(respuesta)

def sombrero_seleccionador():
preguntas = [
("¿Qué cualidad valoras más?", ["Valentía", "Astucia", "Lealtad", "Intelecto"]),
("¿Qué animal prefieres?", ["León", "Serpiente", "Tejón", "Águila"]),
("¿Cómo te describirían tus amigos?", ["Audaz", "Ambicioso", "Leal", "Inteligente"]),
("¿Qué lugar prefieres?", ["Bosque", "Mazmorra", "Campo", "Torre"]),
("¿Qué harías si encuentras una llave de oro?", ["Intentar abrirla", "Ignorarla", "Protegerla", "Estudiarla"])
]

respuestas = []

for pregunta, opciones in preguntas:
respuesta = hacer_pregunta(pregunta, opciones)
respuestas.append(respuesta)

# Lógica del sombrero seleccionador
puntajes = {"Gryffindor": 0, "Slytherin": 0, "Hufflepuff": 0, "Ravenclaw": 0}

for i, casa in enumerate(puntajes):
puntajes[casa] += respuestas[i]

casa_seleccionada = max(puntajes, key=puntajes.get)
print(f"\n¡Bienvenido a {casa_seleccionada}!")

if __name__ == "__main__":
sombrero_seleccionador()

0 comments on commit 26b3cff

Please sign in to comment.