Skip to content

Commit

Permalink
Corrección Roadmap 47 + Nuevo ejercicio 48
Browse files Browse the repository at this point in the history
  • Loading branch information
mouredev committed Dec 2, 2024
1 parent 9d5e827 commit 115dfde
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 3 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
## Corrección y próximo ejercicio

> #### Lunes 2 de diciembre de 2024 a las 20:00 (hora España) desde **[Twitch](https://twitch.tv/mouredev)**
> #### Consulta el **[horario](https://discord.gg/mtHpG4md?event=1308551460644065330)** por país y crea un **[recordatorio](https://discord.gg/mtHpG4md?event=1308551460644065330)**
> #### Lunes 9 de diciembre de 2024 a las 20:00 (hora España) desde **[Twitch](https://twitch.tv/mouredev)**
> #### Consulta el **[horario](https://discord.gg/mtHpG4md?event=1310726079039799438)** por país y crea un **[recordatorio](https://discord.gg/mtHpG4md?event=1310726079039799438)**
## Roadmap

Expand Down Expand Up @@ -81,7 +81,8 @@
|44|[CUENTA ATRÁS MOUREDEV PRO](./Roadmap/44%20-%20CUENTA%20ATRÁS%20MOUREDEV%20PRO/ejercicio.md)|[📝](./Roadmap/44%20-%20CUENTA%20ATRÁS%20MOUREDEV%20PRO/python/mouredev.py)|[▶️](https://youtu.be/9wsXz4K8Q-4)|[👥](./Roadmap/44%20-%20CUENTA%20ATRÁS%20MOUREDEV%20PRO/)
|45|[GITHUB OCTOVERSE](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/ejercicio.md)|[📝](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/python/mouredev.py)|[▶️](https://youtu.be/yj5ZFT_Xmcs)|[👥](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/)
|46|[X VS BLUESKY](./Roadmap/46%20-%20X%20VS%20BLUESKY/ejercicio.md)|[📝](./Roadmap/46%20-%20X%20VS%20BLUESKY/python/mouredev.py)|[▶️](https://youtu.be/RzwFGihKpOM)|[👥](./Roadmap/46%20-%20X%20VS%20BLUESKY/)
|47|[CALENDARIO DE ADVIENTO](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/ejercicio.md)|[🗓️ 02/12/24](https://discord.gg/mtHpG4md?event=1308551460644065330)||[👥](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/)
|47|[CALENDARIO DE ADVIENTO](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/ejercicio.md)|[📝](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/python/mouredev.py)||[👥](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/)
|48|[ÁRBOL DE NAVIDAD](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/ejercicio.md)|[🗓️ 09/12/24](https://discord.gg/mtHpG4md?event=1310726079039799438)||[👥](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/)

## Cursos en YouTube

Expand Down
50 changes: 50 additions & 0 deletions Roadmap/47 - CALENDARIO DE ADVIENTO/python/mouredev.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import calendar


class AdventCalendar:

def __init__(self):
self.days = [False] * 24

def display(self):

for row in range(0, 24, 6):

print("**** " * 6)
print(
" ".join([f"*{str(day).zfill(2)}*" if not self.days[day - 1] else "****" for day in range(row + 1, row + 7)]))
print("**** " * 6)
print()

def select(self, day):

is_digit = day.isdigit()

if is_digit and int(day) > 0 and int(day) <= 24:
day = int(day)

if self.days[day - 1]:
print(
f"El día {day} ya está descubierto. Selecciona otro diferente.")
else:
self.days[day - 1] = True
print(f"Has abierto el día {day}.")

else:
print("Selección inválida. Debes introducir un número entre 1 y 24.")


advent_calendar = AdventCalendar()

while True:

advent_calendar.display()

selection = input(
"Selecciona el día que quieres descubrir (o escribe 'salir' para finalizar): ")

if selection.lower() == "salir":
print("Finalizando el calendario de adviento... ¡Felices fiestas!")
break

advent_calendar.select(selection)
43 changes: 43 additions & 0 deletions Roadmap/48 - ÁRBOL DE NAVIDAD/ejercicio.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# #48 ÁRBOL DE NAVIDAD
> #### Dificultad: Media | Publicación: 02/12/24 | Corrección: 09/12/24
## Ejercicio

```
/*
* EJERCICIO:
* ¡Ha comenzado diciembre! Es hora de montar nuestro
* árbol de Navidad...
*
* Desarrolla un programa que cree un árbol de Navidad
* con una altura dinámica definida por el usuario por terminal.
*
* Ejemplo de árbol de altura 5 (el tronco siempre será igual):
*
* *
* ***
* *****
* *******
* *********
* |||
* |||
*
* El usuario podrá seleccionar las siguientes acciones:
*
* - Añadir o eliminar la estrella en la copa del árbol (@)
* - Añadir o eliminar bolas de dos en dos (o) aleatoriamente
* - Añadir o eliminar luces de tres en tres (+) aleatoriamente
* - Apagar (*) o encender (+) las luces (conservando su posición)
* - Una luz y una bola no pueden estar en el mismo sitio
*
* Sólo puedes añadir una estrella, y tantas luces o bolas
* como tengan cabida en el árbol. El programa debe notificar
* cada una de las acciones (o por el contrario, cuando no
* se pueda realizar alguna).
*/
```
#### Tienes toda la información extendida sobre el roadmap de retos de programación en **[retosdeprogramacion.com/roadmap](https://retosdeprogramacion.com/roadmap)**.

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 115dfde

Please sign in to comment.