Juego de la vida con vecindad variable

Se trata de paralelizar el típico juego de la vida, pero variando los vecinos de cada elementos en las diferentes iteraciones.

Consideramos una matriz cuadrada, con ceros (muerto) y unos (vivo), y en cada generacion se calculan las posiciones vivas en funcion de cuantos vivos haya en su vecindad. Consideramos que si en la vecindad al menos la mitad están vivos esa posicion se pone a 1, y si no a 0.

La vecindad no es fija, sino que en la primera iteración los vecinos son los que están a distancia de Manhatan 1 (solo un movimiento en horizontal o vertical para llegar a ellos), en la siguiente son los que están a distancia menor o igual a 2, en la siguiente menor o igual a 3, y así hasta un tamaño máximo de vecindad,. En la siguiente iteración se vuelve a empezar con vecindad de amplitud 1, después 2, etcétera, hasta alcanzar el número de iteraciones que se indique.

Ficheros

Para más información sobre cómo enviar la solución, lee las instrucciones generales.