From ca6562ecdd145e2eb32890b4518a468731bdee58 Mon Sep 17 00:00:00 2001 From: Brais Moure Date: Mon, 4 Dec 2023 21:34:51 +0100 Subject: [PATCH] =?UTF-8?q?Correcci=C3=B3n=20Reto=20#46?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- .../ejercicio.md | 1 - .../python/mouredev.py | 82 +++++++++++++++++++ .../ejercicio.md" | 25 ++++++ 4 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 Retos/Reto #46 - LA CARRERA DE COCHES [Media]/python/mouredev.py create mode 100644 "Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/ejercicio.md" diff --git a/README.md b/README.md index d1263f2e31..0fa3109794 100644 --- a/README.md +++ b/README.md @@ -63,9 +63,10 @@ Aquí encontrarás el listado de retos, su fecha de publicación, dificultad y e * **#43** - 30/10/23 | Fácil | [`SIMULADOR DE CLIMA`](./Retos/Reto%20%2343%20-%20SIMULADOR%20DE%20CLIMA%20%5BFácil%5D/ejercicio.md) | Correcciones: [[MI SOLUCIÓN](./Retos/Reto%20%2343%20-%20SIMULADOR%20DE%20CLIMA%20%5BFácil%5D/python/mouredev.py)] [[COMUNIDAD](./Retos/Reto%20%2343%20-%20SIMULADOR%20DE%20CLIMA%20%5BFácil%5D/)] * **#44** - 13/11/23 | Media | [`ADIVINANZAS MATEMÁTICAS`](./Retos/Reto%20%2344%20-%20ADIVINANZAS%20MATEMÁTICAS%20%5BMedia%5D/ejercicio.md) | Correcciones: [[MI SOLUCIÓN](./Retos/Reto%20%2344%20-%20ADIVINANZAS%20MATEMÁTICAS%20%5BMedia%5D/python/mouredev.py)] [[COMUNIDAD](./Retos/Reto%20%2344%20-%20ADIVINANZAS%20MATEMÁTICAS%20%5BMedia%5D/)] * **#45** - 20/11/23 | Fácil | [`EL CALENDARIO DE ADEVIENTO 2023`](./Retos/Reto%20%2345%20-%20EL%20CALENDARIO%20DE%20ADEVIENTO%202023%20%5BFácil%5D/ejercicio.md) | Correcciones: [[MI SOLUCIÓN](./Retos/Reto%20%2345%20-%20EL%20CALENDARIO%20DE%20ADEVIENTO%202023%20%5BFácil%5D/python/mouredev.py)] [[COMUNIDAD](./Retos/Reto%20%2345%20-%20EL%20CALENDARIO%20DE%20ADEVIENTO%202023%20%5BFácil%5D/)] -* **#46** - 27/11/23 | Media | [`LA CARRERA DE COCHES`](./Retos/Reto%20%2346%20-%20LA%20CARRERA%20DE%20COCHES%20%5BMedia%5D/ejercicio.md) | Último reto publicado +* **#46** - 27/11/23 | Media | [`LA CARRERA DE COCHES`](./Retos/Reto%20%2346%20-%20LA%20CARRERA%20DE%20COCHES%20%5BMedia%5D/ejercicio.md) | Correcciones: [[MI SOLUCIÓN](./Retos/Reto%20%2346%20-%20LA%20CARRERA%20DE%20COCHES%20%5BMedia%5D/python/mouredev.py)] [[COMUNIDAD](./Retos/Reto%20%2346%20-%20LA%20CARRERA%20DE%20COCHES%20%5BMedia%5D/)] +* **#47** - 04/11/23 | Fácil | [`LA PALABRA DE 100 PUNTOS`](./Retos/Reto%20%2347%20-%20LA%20PALABRA%20DE%20100%20PUNTOS%20%5BFácil%5D/ejercicio.md) | Último reto publicado -> **Corrección y Publicación próximo reto - 04/12/23 | [🗓️ Horario evento corrección en directo](https://discord.gg/aNQNqZcB?event=1178638296092524544) en [Twitch](https://twitch.tv/mouredev)** +> **Corrección y Publicación próximo reto - 11/12/23 | [🗓️ Horario evento corrección en directo](https://discord.gg/mouredev?event=1181173439952863352) en [Twitch](https://twitch.tv/mouredev)** *Puedes ejecutar el archivo [language_stats.py](./Retos/language_stats.py) para visualizar las estadísticas de uso de cada lenguaje.* diff --git a/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/ejercicio.md b/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/ejercicio.md index 6efb393b45..1df8314b1f 100644 --- a/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/ejercicio.md +++ b/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/ejercicio.md @@ -22,7 +22,6 @@ * se muestra 💥 y no avanza durante un turno. * - Cada turno se imprimen las pistas y sus elementos. * - Cuando la carrera finalice, se muestra el coche ganador o el empate. - * */ ``` #### Tienes toda la información extendida sobre los retos de programación semanales en **[retosdeprogramacion.com/semanales2023](https://retosdeprogramacion.com/semanales2023)**. diff --git a/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/python/mouredev.py b/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/python/mouredev.py new file mode 100644 index 0000000000..10712fed33 --- /dev/null +++ b/Retos/Reto #46 - LA CARRERA DE COCHES [Media]/python/mouredev.py @@ -0,0 +1,82 @@ +import random +import time +import os + + +def race(track_length: int): + + track1, track2 = create_tracks(track_length) + + print_race(track1, track2) + + position1, position2 = len(track1) - 1, len(track2) - 1 + crash1, crash2 = False, False + + while position1 > 0 and position2 > 0: + + time.sleep(0.5) + + track1[position1] = "_" + track2[position2] = "_" + + position1 -= 0 if crash1 else random.randint(1, 3) + position2 -= 0 if crash2 else random.randint(1, 3) + + crash1, crash2 = False, False + + position1 = 0 if position1 < 0 else position1 + position2 = 0 if position2 < 0 else position2 + + if track1[position1] == "🌲": + crash1 = True + if track2[position2] == "🌲": + crash2 = True + + track1[position1] = "💥" if crash1 else "🚙" + track2[position2] = "💥" if crash2 else "🚗" + + print_race(track1, track2) + + check_race(position1, position2) + + +def create_tracks(track_length: int) -> (list, list): + + track = ["_"] * track_length + + def add_trees(track: list) -> list: + trees = random.randint(1, 3) + for _ in range(trees): + position = random.randint(0, len(track) - 1) + track[position] = "🌲" + + return track + + track1, track2 = add_trees(track.copy()), add_trees(track.copy()) + + track1.insert(0, "🏁") + track1.append("🚙") + track2.insert(0, "🏁") + track2.append("🚗") + + return (track1, track2) + + +def print_race(track1: list, track2: list): + os.system("clear") + # os.system("cls") Windows + print("".join(track1)) + print("".join(track2)) + print("") + + +def check_race(position1: int, position2: int): + if position1 == 0 and position2 == 0: + print("Empate") + elif position1 == 0: + print("Ha ganado el coche 🚙") + elif position2 == 0: + print("Ha ganado el coche 🚗") + + +race(20) diff --git "a/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/ejercicio.md" "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/ejercicio.md" new file mode 100644 index 0000000000..b211577c7e --- /dev/null +++ "b/Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [F\303\241cil]/ejercicio.md" @@ -0,0 +1,25 @@ +# Reto #47: La palabra de 100 puntos +#### Dificultad: Fácil | Publicación: 04/12/23 | Corrección: 11/12/23 + +## Enunciado + +``` +/* + * La última semana de 2021 comenzamos la actividad de retos de programación, + * con la intención de resolver un ejercicio cada semana para mejorar + * nuestra lógica... ¡Hemos llegado al EJERCICIO 100! Gracias 🙌 + * + * Crea un programa que calcule los puntos de una palabra. + * - Cada letra tiene un valor asignado. Por ejemplo, en el abecedario + * español de 27 letras, la A vale 1 y la Z 27. + * - El programa muestra el valor de los puntos de cada palabra introducida. + * - El programa finaliza si logras introducir una palabra de 100 puntos. + * - Puedes usar la terminal para interactuar con el usuario y solicitarle + * cada palabra. + */ +``` +#### Tienes toda la información extendida sobre los retos de programación semanales en **[retosdeprogramacion.com/semanales2023](https://retosdeprogramacion.com/semanales2023)**. + +Sigue las **[instrucciones](../../README.md)**, consulta las correcciones y aporta la tuya propia utilizando el lenguaje de programación que quieras. + +> Recuerda que cada semana se publica un nuevo ejercicio y se corrige el de la semana anterior en directo desde **[Twitch](https://twitch.tv/mouredev)**. Tienes el horario en la sección "eventos" del servidor de **[Discord](https://discord.gg/mouredev)**. \ No newline at end of file