Skip to content

Commit

Permalink
Corrección Reto #46
Browse files Browse the repository at this point in the history
  • Loading branch information
mouredev committed Dec 4, 2023
1 parent 6e70c46 commit ca6562e
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 3 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.*

Expand Down
1 change: 0 additions & 1 deletion Retos/Reto #46 - LA CARRERA DE COCHES [Media]/ejercicio.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)**.
Expand Down
82 changes: 82 additions & 0 deletions Retos/Reto #46 - LA CARRERA DE COCHES [Media]/python/mouredev.py
Original file line number Diff line number Diff line change
@@ -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)
25 changes: 25 additions & 0 deletions Retos/Reto #47 - LA PALABRA DE 100 PUNTOS [Fácil]/ejercicio.md
Original file line number Diff line number Diff line change
@@ -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)**.

0 comments on commit ca6562e

Please sign in to comment.