Retos de programación semanales en Swift 2022
MoureDev para practicar Swift.
Proyecto de retos semanales de la comunidadretosdeprogramacion.com/semanales2022
Todos nuestros retos enSi quieres realizar los retos de programación en otro lenguaje, utiliza el repositorio de retos semanales principal.
También puedes unirte a nuestra actividad mensual de creación de aplicaciones.
Información importante
El proyecto principal de retos de programación semanales en Swift se ha creado utilizando Xcode.
Tienes las soluciones de la comunidad en Pull Requests.
Tienes toda la información extendida sobre los retos de programación semanales y mensuales en retosdeprogramacion.com.
Vídeo explicación retos
Listado de retos
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
- #36 - 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 -
CONVERSOR DE TEMPERATURA
- #43 - 24/10/22 -
TRUCO O TRATO
- #44 - 02/11/22 -
BUMERANES
- #45 - 07/11/22 -
CONTENEDOR DE AGUA
- #46 - 14/11/22 -
¿DÓNDE ESTÁ EL ROBOT?
- #47 - 21/11/22 -
VOCAL MÁS COMÚN
- #48 - 28/11/22 -
EL CALENDARIO DE ADEVIENTO 2022
- #49 - 05/12/22 -
EL DETECTOR DE HANDLES
- #50 - 12/12/22 -
LA ENCRIPTACIÓN DE KARACA
- #51 - 19/12/22 -
EL RETO RANDOM
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
Corección retos del 31 al 40 en vídeo
Corección retos del 41 al 46 en vídeo
Corección retos del 47 al 51 en vídeo
¿Cómo puedo participar?
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
WeeklyChallenge2022.playground
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 Xcode, puedes usar un playground online (http://online.swiftplayground.run/) para probar tu código.
Si utilizas un editor como Xcode, puedes ejecutar el código pulsando el símbolo "play ►" en el lateral.
Puedes apoyar mi trabajo haciendo "☆ Star" en el repo o nominarme a "GitHub Star". ¡Gracias!
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:
Cómo trabajar con Git y GitHub de forma colaborativa
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]" (Solución Reto #0).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.
Hola, mi nombre es Brais Moure.
Freelance full-stack iOS & Android engineer
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.