Proyecto de retos semanales de la comunidad MoureDev para practicar lógica de programación.
Todos nuestros retos en retosdeprogramacion.com/semanales2022
Si quieres realizar los retos de programación en Swift, utiliza el siguiente repositorio.
También puedes unirte a nuestra actividad mensual de creación de aplicaciones.
El proyecto principal de retos de programación semanales se ha creado utilizando Android Studio y resolviendo cada uno de los ejercicio utilizando el lenguaje de programación Kotlin (ya que lo utilizo frecuentemente, su sintáxis es simple y tenía que elegir alguno como ejemplo 😁).
Puedes utilizar cualquier lenguaje para resolver los retos. Tienes soluciones de la comunidad usando todo tipo de lenguajes en la sección de Pull Requests.
Tienes toda la información extendida sobre los retos de programación semanales y mensuales en retosdeprogramacion.com.
Aquí tienes un fichero con el enunciado y el código para cada reto
- #0 - 27/12/21 -
EL FAMOSO "FIZZ BUZZ"
- #1 - 03/01/22 -
¿ES UN ANAGRAMA?
- #2 - 10/01/22 -
LA SUCESIÓN DE FIBONACCI
- #3 - 17/01/22 -
¿ES UN NÚMERO PRIMO?
- #4 - 24/01/22 -
ÁREA DE UN POLÍGONO
- #5 - 01/02/22 -
ASPECT RATIO DE UNA IMAGEN
- #6 - 07/02/22 -
INVIRTIENDO CADENAS
- #7 - 14/02/22 -
CONTANDO PALABRAS
- #8 - 18/02/22 -
DECIMAL A BINARIO
- #9 - 02/03/22 -
CÓDIGO MORSE
- #10 - 07/03/22 -
EXPRESIONES EQUILIBRADAS
- #11 - 14/03/22 -
ELIMINANDO CARACTERES
- #12 - 21/03/22 -
¿ES UN PALÍNDROMO?
- #13 - 28/03/22 -
FACTORIAL RECURSIVO
- #14 - 04/04/22 -
¿ES UN NÚMERO DE ARMSTRONG?
- #15 - 11/04/22 -
¿CUÁNTOS DÍAS?
- #16 - 18/04/22 -
EN MAYÚSCULA
- #17 - 25/04/22 -
LA CARRERA DE OBSTÁCULOS
- #18 - 02/05/22 -
TRES EN RAYA
- #19 - 09/05/22 -
CONVERSOR TIEMPO
- #20 - 16/05/22 -
PARANDO EL TIEMPO
- #21 - 23/05/22 -
CALCULADORA .TXT
- #22 - 01/06/22 -
CONJUNTOS
- #23 - 07/06/22 -
MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO
- #24 - 13/06/22 -
ITERATION MASTER
- #25 - 20/06/22 -
PIEDRA, PAPEL, TIJERA
- #26 - 27/06/22 -
CUADRADO Y TRIÁNGULO 2D
- #27 - 07/07/22 -
VECTORES ORTOGONALES
- #28 - 11/07/22 -
MÁQUINA EXPENDEDORA
- #29 - 18/07/22 -
ORDENA LA LISTA
- #30 - 26/07/22 -
MARCO DE PALABRAS
- #31 - 01/08/22 -
AÑOS BISIESTOS
- #32 - 08/08/22 -
EL SEGUNDO
- #33 - 15/08/22 -
CICLO SEXAGENARIO CHINO
- #34 - 22/08/22 -
LOS NÚMEROS PERDIDOS
- #35 - 29/08/22 -
BATALLA POKÉMON
- #36 - 06/09/22 -
LOS ANILLOS DE PODER
- #37 - 14/09/22 -
LOS LANZAMIENTOS DE "THE LEGEND OF ZELDA"
- #38 - 19/09/22 -
BINARIO A DECIMAL
- #39 - 27/09/22 -
TOP ALGORITMOS: QUICK SORT
- #40 - 03/10/22 -
TRIÁNGULO DE PASCAL
- #41 - 10/10/22 -
LA LEY DE OHM
- #42 - 17/10/22 -
Publicación nuevo reto...
Corrección retos del 0 al 4 en vídeo
Corrección retos del 5 al 10 en vídeo
Corección retos del 11 al 20 en vídeo
Corección retos del 21 al 30 en vídeo
Puedes hacer libremente un fork del proyecto y trabajar con Git para ir sincronizando las actualizaciones del proyecto.
-
Cada lunes se publicará un nuevo reto de código.
-
Cada reto será un nuevo fichero dentro de
app/src/main/java/com/mouredev/weeklychallenge2022
donde se indicará la fecha, el enunciado y la información necesaria para llevarlo a cabo. -
Se comunicará en el canal
#🔁reto-semanal
de Discord, en directo desde Twitch y se subirá el enunciado al repositorio. -
Dispondrás de una semana para resolverlo, preguntar tus dudas, debatir y aportar ayuda en el canal de Discord.
-
El lunes siguiente se subirá la resolución al repositorio, se comentará en directo desde Twitch (utilizando alguna solución de entre los asistentes o que se haya realizado una pull request al proyecto) y se añadirá el nuevo reto semanal.
-
Comenzará de nuevo el proceso.
Si no dispones de un editor de código como Android Studio, puedes usar un playground online (https://play.kotlinlang.org/) para probar tu código.
Si utilizas un editor como Android Studio o semejante, puedes ejecutar el código creando un bloque
fun main() { }
y pulsando el símbolo "play ►" en el lateral.fun main() {
}
Si quieres unirte a nuestra comunidad de desarrollo, aprender programación de Apps, mejorar tus habilidades y ayudar a la continuidad del proyecto, puedes encontrarnos en:
Deberás realizar flujos de actualización, sincronización y pull request
desde tu fork
del proyecto hacia el principal (habitualmente nombrado como upstream/main
).
Todo esto se puede hacer desde línea de comandos, pero si prefieres puedes usar clientes gráficos como GitHub Desktop (muy simple) o GitKraken (más avanzado y potente).
- Desde tu repo en la propia web de GitHub podrás realizar muchas acciones.
- Si te resulta más fácil, puedes crear una
branch
(rama) para resolver cada reto y así simplificar lapull request
. También puedes ignorar ciertos ficheros. - Resuelve el ejercicio y realiza
commit
ypush
del mismo a tu proyecto. - Desde GitHub, una vez hecho el
fork
verás opciones como "Contribute" o "Fetch upstream":Contribute
permite abrir unapull request
(deberás seleccionar el mío como repositorio base contra el que comparar tu proyecto). Así yo podré ver los ficheros modificados de tu proyecto con la solución a los retos. Intenta que el título de lapull request
siga esta convención: "Solución Reto #[número del reto] [Lenguaje]" (Solución Reto #0 Kotlin).Fetch upstream
permite sincronizar tu proyecto con el original en caso de que se haya actualizado.
- Para sincronizar tu proyecto con el original y mantenerlo actualizado también puedes hacer un
merge commit
,squash merge
orebase
(ten en cuenta que cada uno se comporta de una manera, conservando o no tus propios cambios). - Una vez se publique el nuevo reto, la solución del anterior, y comente las soluciones, cerraré las pasadas
pull request
para dejar paso a las que se hagan para el nuevo reto.
Soy ingeniero de software desde hace más de 12 años. Desde hace 4 años combino mi trabajo desarrollando Apps con creación de contenido formativo sobre programación y tecnología en diferentes redes sociales como @mouredev.