S O F T W A R E E V O L U T I V O

Productos digitales, Kubernetes 360, DevOps ...

Kata Juego de la Vida

Una de las katas más populares al hacer Coding Dojo es la Kata Juego de la Vida, y de hecho la más usada en Code Retreat.

Descripción del problema

Este Kata se trata de calcular la próxima generación del juego de la vida de Conway, dada cualquier posición inicial. Consulta Juego de la vida de Conway para conocer los antecedentes.

Comienza con una cuadrícula bidimensional de celdas, donde cada celda está viva o muerta. En esta versión del problema, la cuadrícula es finita y no puede existir vida fuera de los bordes. 

Al calcular la próxima generación de la red, sigue estas reglas:

  1. Cualquier celda viva con menos de dos vecinas vivas muere, como si la causa fuera la subpoblación.
  2. Cualquier celda viva con más de tres vecinos vivos muere, como por superpoblación.
  3. Cualquier celda viva con dos o tres vecinos vivos seguirá viva.
  4. Cualquier celda muerta con exactamente tres vecinos vivos se convierte en una celda viva.

Pistas

La posición inicial de entrada podría ser un archivo de texto que se vea así:

Generación 1 inicial:

4 (filas) 8 (columnas)

0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0

Generación 2 próxima resultante por regla No. 4:

4 (filas) 8 (columnas)

0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0

Visualiza tus casos de prueba

Hemos preparado la siguiente herramienta para que puedas dibujar (en caso remoto colaborativo) tus casos de prueba, revísalo en Juego de la vida visual.

Casos de prueba sugeridos

Asegúrate de tener suficiente cobertura de casos en los extremos, en donde hay nacimientos y muertes en el extremo de la cuadrícula.

!Que te diviertas! En tu Kata Juego de la vida

DISCLAIMER: La mayoría de este texto es traducido del valioso aporte en GameOfLife, pero no está disponible en español.  Pero hemos añadido varias cosas a la descripción y alguna herramienta, para hacerlo en nuestro entendimiento más comprensivo.

leave a comment

diecisiete − dieciseis =