Antes de iniciar asegurate de cumplir con los siguientes pre-requisitos:
- The game consists of 10 frames as shown above. In each frame the player has two opportunities to knock down 10 pins. The score for the frame is the total number of pins knocked down, plus bonuses for strikes and spares.
- A spare is when the player knocks down all 10 pins in two tries. The bonus for that frame is the number of pins knocked down by the next roll. So in frame 3 above, the score is 10 (the total number knocked down) plus a bonus of 5 (the number of pins knocked down on the next roll.)
- A strike is when the player knocks down all 10 pins on his first try. The bonus for that frame is the value of the next two balls rolled.
- In the tenth frame a player who rolls a spare or strike is allowed to roll the extra balls to complete the frame. However no more than three balls can be rolled in tenth frame.
- Calidad
- Utilizar estilo de código definido por la comunidad (apoyarse en Rubocop)
- Pruebas unitarias (TDD)
- Puntuación en Rubycritic: por lo menos 95 en la carpeta de la App y por lo menos 75 en las pruebas
- Ejecución
- Puede ejecutarse desde la linea de comandos y mostrar la salida en consola-
- Código fuente
- Orientado a Objetos
- Métodos Pequeños
- Aplicar los principios SOLID
- Código fuente en Github
- Debe actualizar el archivo setup.md en donde se describa el proceso para hacer funcionar el proyecto
- Los commits de Git deben ser atómicos y significativos
En sus valoraciones los mentores considaran los siguientes aspectos:
- Orientación a objetos
- Estructura de archivos
- Pruebas
- Código duplicado
- Separación de intereses (separation of concerns)
- Convenciones del lenguaje
- Claridad de la solución
- Abstracción
- Uso de características propias del lenguaje ruby
- Uso de Git, commits bien definidos y atómicos
- Puntuación obtenida en RubyCritic
- Este ejercicio de trabaja en formato de Code Kata individual
- Dedica tiempo a leer y entender los requerimientos funcionales
- Selecciona algún feature o requerimiento y escribe la(s) prueba(s) que debe pasar
- Codifica la solución para ese feature (si lo consideras necesario puedes cambiar el orden es decir primero codificar y después escribir la prueba)
- En tu primer intento no te preocupes demasiado por lo elegante de tu solución sino por pasen todas las pruebas
- Una vez que la solución funciona, haz un ejercicio de refactorización asegurandote que las pruebas sigan pasando
- Toma el siguiente feature o requerimiento y repite el proceso
- Una vez que termines informa a tu mentor, para que revise tu solución.
- Deberásn atender las observaciones
- El ejercicio terminará una vez que tu mentor determninq que tu solución cumple con los requerimientos.
- Tienes un máximo de 5 días para implementar el algortitmo de el Juego de Boliche
- Durante el proceso de desarrollo debes mantener actualizado este repositorio
- Se requiere por lo menos la aprobación de 1 mentor
- Incluir pruebas (TDD)
- Deberás incluir el linter RuboCop en tu proyecto
- Debes utilizar Rubycritic y obtener por lo menos una puntuación de 95 en la carpeta de tu app y 75 en la de pruebas
- NO es un examen sino un ejercicio por lo que puedes apoyarte en tus compañeros y mentores para recibir ayuda, así que si tienes dudas, pregunta, pregunta pregunta!
En este elnace se describen los pasos necesarios para ejecutar/probar este proyecto.