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#6702 from crisky94/main
Reto #0 - Python y Reto #1 - Python
- Loading branch information
Showing
3 changed files
with
114 additions
and
0 deletions.
There are no files selected for viewing
21 changes: 21 additions & 0 deletions
21
Retos/Reto #0 - EL FAMOSO FIZZ BUZZ [Fácil]/python/crisky94.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,21 @@ | ||
# /* | ||
# * Escribe un programa que muestre por consola (con un print) los | ||
# * números de 1 a 100 (ambos incluidos y con un salto de línea entre | ||
# * cada impresión), sustituyendo los siguientes: | ||
# * - Múltiplos de 3 por la palabra "fizz". | ||
# * - Múltiplos de 5 por la palabra "buzz". | ||
# * - Múltiplos de 3 y de 5 a la vez por la palabra "fizzbuzz". | ||
# */ | ||
|
||
|
||
for numbers in range(1, 101): | ||
if numbers % 5 == 0 and numbers % 3 == 0: | ||
print('fizzbuzz') | ||
elif numbers % 3 == 0: | ||
print('fizz') | ||
elif numbers % 5 == 0: | ||
print('buzz') | ||
else: | ||
print(numbers) | ||
|
||
|
37 changes: 37 additions & 0 deletions
37
Retos/Reto #1 - EL LENGUAJE HACKER [Fácil]/python/crisky94.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 @@ | ||
# /* | ||
# * Escribe un programa que reciba un texto y transforme lenguaje natural a | ||
# * "lenguaje hacker" (conocido realmente como "leet" o "1337"). Este lenguaje | ||
# * se caracteriza por sustituir caracteres alfanuméricos. | ||
# * - Utiliza esta tabla (https://www.gamehouse.com/blog/leet-speak-cheat-sheet/) | ||
# * con el alfabeto y los números en "leet". | ||
# * (Usa la primera opción de cada transformación. Por ejemplo "4" para la "a") | ||
# */ | ||
|
||
|
||
def transformar_lenguaje_hacker(texto): | ||
if not texto == 'str': | ||
raise TypeError('El texto no puede contener números') | ||
else: | ||
leet_dict = { | ||
'a': '4', 'b': '13', 'c': '[', 'd': ')', 'e': '3', | ||
'f': '|=', 'g': '6', 'h': '#', 'i': '1', 'j': ',_|', | ||
'k': '>|', 'l': '1', 'm': '/\\/\\', 'n': '^/', 'o': '0', | ||
'p': '|*', 'q': '(_,)', 'r': 'I2', 's': '5', 't': '7', | ||
'u': '(_)', 'v': '\\/', 'w': '\\/\\/', 'x': '><', 'y': '`/', | ||
'z': '2', '1': 'L', '2': 'R', '3': 'E', '4': 'A', '5': 'S', | ||
'6': 'b', '7': 'T', '8': 'B', '9': 'g', '0': 'o' | ||
} | ||
|
||
texto_hacker = ''.join(leet_dict.get(char.lower(), char) for char in texto) | ||
|
||
return texto_hacker | ||
|
||
try: | ||
texto_usuario = input('Escribe un texto: ') | ||
|
||
resultado = transformar_lenguaje_hacker(texto_usuario) | ||
|
||
print(f'Texto en lenguaje hacker: {resultado}') | ||
|
||
except TypeError as e: | ||
print(e) |
56 changes: 56 additions & 0 deletions
56
Retos/Reto #2 - EL PARTIDO DE TENIS [Media]/python/crisky94.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,56 @@ | ||
# /* | ||
# * Escribe un programa que muestre cómo transcurre un juego de tenis y quién lo ha ganado. | ||
# * El programa recibirá una secuencia formada por "P1" (Player 1) o "P2" (Player 2), según quien | ||
# * gane cada punto del juego. | ||
# * | ||
# * - Las puntuaciones de un juego son "Love" (cero), 15, 30, 40, "Deuce" (empate), ventaja. | ||
# * - Ante la secuencia [P1, P1, P2, P2, P1, P2, P1, P1], el programa mostraría lo siguiente: | ||
# * 15 - Love | ||
# * 30 - Love | ||
# * 30 - 15 | ||
# * 30 - 30 | ||
# * 40 - 30 | ||
# * Deuce | ||
# * Ventaja P1 | ||
# * Ha ganado el P1 | ||
# * - Si quieres, puedes controlar errores en la entrada de datos. | ||
# * - Consulta las reglas del juego si tienes dudas sobre el sistema de puntos. | ||
# */ | ||
|
||
def mostrar_puntos(puntos_p1, puntos_p2): | ||
puntuaciones = ['Love', '15', '30', '40'] | ||
|
||
if puntos_p1 >= 3 or puntos_p2 >= 3: | ||
if puntos_p1 == puntos_p2: | ||
return 'Deuce' | ||
|
||
if puntos_p1 > 3: | ||
print('Ventaja P1') | ||
return 'Ha ganado P1' | ||
elif puntos_p2 > 3: | ||
print('Ventaja P2') | ||
return 'Ha ganado P2' | ||
|
||
return f'{puntuaciones[puntos_p1]} - {puntuaciones[puntos_p2]}' | ||
|
||
def jugar_tenis(secuencia): | ||
puntos_p1 = 0 | ||
puntos_p2 = 0 | ||
|
||
for punto in secuencia: | ||
if punto == "P1": | ||
puntos_p1 += 1 | ||
elif punto == "P2": | ||
puntos_p2 += 1 | ||
else : | ||
print('Error: entrada no valida') | ||
return | ||
|
||
resultado = mostrar_puntos(puntos_p1, puntos_p2) | ||
print(resultado) | ||
|
||
if 'Ha ganado' in resultado: | ||
break | ||
|
||
secuencia = ["P1", "P1", "P2", "P2", "P1", "P2", "P1", "P1"] | ||
jugar_tenis(secuencia) |