
Game of Life
Programá el famoso autómata celular de Conway usando TDD
Enunciado
El universo del Game of Life es una grilla bidimensional de células, cada una en uno de dos estados posibles: viva o muerta. Cada célula interactúa con sus ocho vecinas, que son las células adyacentes en horizontal, vertical o diagonal. En cada paso de tiempo ocurren las siguientes transiciones:
- Toda célula viva con menos de dos vecinas vivas muere, como por subpoblación.
- Toda célula viva con dos o tres vecinas vivas sigue viva en la generación siguiente.
- Toda célula viva con más de tres vecinas vivas muere, como por sobrepoblación.
- Toda célula muerta con exactamente tres vecinas vivas pasa a estar viva, como por reproducción.
El patrón inicial es la semilla del sistema. La primera generación se crea aplicando las reglas anteriores simultáneamente a cada célula de la semilla, viva o muerta; los nacimientos y las muertes ocurren al mismo tiempo, y el momento discreto en el que esto pasa a veces se llama tick.
Las reglas se siguen aplicando una y otra vez para crear las generaciones siguientes.
Tenés que escribir un programa que acepte una grilla arbitraria de células y devuelva una grilla similar con la generación siguiente.
Ejemplo
Generation 1:
........
....*...
...**...
........
Generation 2:
........
...**...
...**...
........Soluciones
- Kotlin de Nicolás Bottarini