- Por Emmanuel Valverde
- ·
- Publicado 28-feb-2024 0:00:00
Morning routine
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
En la Academia de Codurance utilizamos esta kata en la fase de diseño, ya que resolver este ejercicio te obliga a reforzar los principios del diseño orientado a objetos y también te enseña a trabajar paso a paso.
La solución de esta kata requiere que mantengas una lógica de estado compleja. También te enseñará cómo un buen diseño orientado a objetos puede ayudarte a conseguir una solución.
La percepción de que el TDD consume más tiempo que codificar una implementación, o escribir código y retro-adaptar las pruebas unitarias después del hecho, es una gran falacia. Esto sólo es cierto para quienes son nuevos a este método. Los expertos en TDD no suelen ser más lentos que quienes escriben código sin pruebas. También suelen pasar mucho menos tiempo depurando y solucionando problemas a posteriori.
Ir paso a paso es la forma ideal de practicar TDD. Una vez que seas competente en esto, podrás progresar incrementalmente hacia la solución de un problema. Te sorprenderá lo rápido y eficiente que es este proceso una vez que lo dominas.
Implementa una versión finita del Juego de la Vida de Conway.
Estas son las reglas (cortesía de Wikipedia):
El universo de Game of Life es una cuadrícula ortogonal, bidimensional e infinita de células cuadradas, cada una de las cuales se encuentra en uno de los dos estados posibles: viva o muerta. Cada célula interactúa con sus ocho vecinas, que son las célula que están horizontal, vertical o diagonalmente adyacentes a ella. En cada paso del tiempo se producen las siguientes transiciones:
- Cualquier célula viva con menos de dos vecinas vivas muere, como si la causa fuera la infrapoblación.
- Cualquier célula viva con dos o tres vecinas vivas pasa a la siguiente generación.
- Cualquier célula viva con más de tres vecinas vivas muere, como por sobrepoblación.
- Cualquier célula muerta con exactamente tres vecinas vivas se convierte en una célula viva, como por reproducción.
El patrón inicial constituye la semilla del sistema. La primera generación se crea aplicando las reglas mencionadas simultáneamente a cada célula de la semilla: los nacimientos y las muertes se producen simultáneamente, y el momento determinado en que esto ocurre se denomina tick (en pocas palabras, cada generación es una función pura de la anterior).
Tu juego debe ser construido con el estado inicial de una matriz bidimensional de valores booleanos y un único método público para pasar a la siguiente generación:
public class GameOfLife {
public GameOfLife(boolean[][] board);
public void nextGen();
}
Crédito: Kata-Log
test && commit || revert
por Kent BeckComo soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
Historia: Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza..
Resumen Esta kata es bastante avanzada, por lo que recomendamos que intentes resolverla una vez que hayas practicado TDD con otras katas más fáciles.
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores