forked from mouredev/retos-programacion-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request mouredev#5716 from feltoxXx/main
Reto mouredev#4,5,6,7 - Python
- Loading branch information
Showing
4 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
Retos/Reto #4 - PRIMO, FIBONACCI Y PAR [Media]/python/feltoxXx.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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!") |
37 changes: 37 additions & 0 deletions
37
Retos/Reto #6 - PIEDRA, PAPEL, TIJERA, LAGARTO, SPOCK [Media]/python/feltoxXx.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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([("🗿", "📄"), ("✂️", "🗿"), ("📄", "✂️"), ("🖖", "🦎"), ("🦎", "📄")])) |
49 changes: 49 additions & 0 deletions
49
Retos/Reto #7 - EL SOMBRERO SELECCIONADOR [Media]/python/feltoxXx.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |