Skip to content

Commit 63a8602

Browse files
authored
Merge pull request mouredev#7245 from Jesusway69/main
mouredev#47 - Python
2 parents 296c701 + 28bb2a5 commit 63a8602

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import os, platform
2+
3+
if (platform.platform().startswith("macOS") or platform.platform().startswith("Linux")):
4+
os.system('clear')
5+
else:
6+
os.system('cls')
7+
8+
""" * EJERCICIO:
9+
* ¡Cada año celebramos el aDEViento! 24 días, 24 regalos para
10+
* developers. Del 1 al 24 de diciembre: https://adviento.dev
11+
*
12+
* Dibuja un calendario por terminal e implementa una
13+
* funcionalidad para seleccionar días y mostrar regalos.
14+
* - El calendario mostrará los días del 1 al 24 repartidos
15+
* en 6 columnas a modo de cuadrícula.
16+
* - Cada cuadrícula correspondiente a un día tendrá un tamaño
17+
* de 4x3 caracteres, y sus bordes serán asteríscos.
18+
* - Las cuadrículas dejarán un espacio entre ellas.
19+
* - En el medio de cada cuadrícula aparecerá el día entre el
20+
* 01 y el 24.
21+
*
22+
* Ejemplo de cuadrículas:
23+
* **** **** **** **** **** ****
24+
* *01* *02* *03* *04* *05* *06*
25+
* **** **** **** **** **** ****
26+
*
27+
* - El usuario seleccioná qué día quiere descubrir.
28+
* - Si está sin descubrir, se le dirá que ha abierto ese día
29+
* y se mostrará de nuevo el calendario con esa cuadrícula
30+
* cubierta de asteríscos (sin mostrar el día).
31+
*
32+
* Ejemplo de selección del día 1
33+
* **** **** ****
34+
* **** *02* *03* ...
35+
* **** **** ****
36+
*
37+
* - Si se selecciona un número ya descubierto, se le notifica
38+
* al usuario."""
39+
40+
calendar = []
41+
used_numbers = set()
42+
for i in range(6):
43+
calendar.append("****")
44+
45+
for i in range(1, 25):
46+
day:str = f"*{str(i).zfill(2)}*"
47+
calendar.append(day)
48+
if i % 6 == 0:
49+
for i in range(6):
50+
calendar.append("****")
51+
52+
def show_calendar(calendar:list):
53+
for i in range (1, len(calendar) + 1):
54+
print(calendar[i-1], end=' ')
55+
if i % 6 == 0:
56+
print()
57+
58+
while True:
59+
show_calendar(calendar)
60+
number:str = input("\nIntroduzca el día del calendario del 1 al 24 o enter para salir: ")
61+
if number == '':
62+
break
63+
64+
elif not number.isdigit or int(number) > 24 or int(number) < 1:
65+
print("El dato debe ser numérico entre 1 y 24, intente de nuevo")
66+
continue
67+
68+
else:
69+
target:str = number.zfill(2)
70+
for number in used_numbers:
71+
if number == target:
72+
print(f"El número {target} ya se ha seleccionado antes, intente con otro")
73+
continue
74+
for j in range(len(calendar)):
75+
if target in calendar[j]:
76+
calendar[j] = "****"
77+
used_numbers.add(target)
78+
79+

0 commit comments

Comments
 (0)