La semana pasada me enteré de la muerte de John Conway por Covid 19. Conway tenía 82 años y era profesor emérito en la Universidad de Princeton. Fue un famoso matemático que realizó avances importantes en varias áreas de estudio y que en sus ratos libres se divertía inventado juegos matemáticos. El más famoso de esos divertimentos es el Juego de la Vida. No me refiero a Life: el juego de la vida, juego de mesa furor en los noventa, sino a un juego de cero jugadores muy popular entre matemáticos y programadores.
El Juego de la Vida de Conway consiste en un plano conceptualmente infinito compuesto por una grilla cuadriculada. Cada celda de la grilla es un célula que en un momento dado puede estar viva o muerta (encendida o apagada). Cada célula tiene exactamente ocho celdas vecinas:
Dada una configuración inicial (un n grupo de células vivas y un grupo de células muertas), se puede aplicar un conjunto de reglas sencillas para obtener la configuración de la siguiente generación. La simulación consiste, entonces, en aplicar de forma sucesiva este conjunto de reglas y observar cómo la población de células evoluciona:
- Supervivencia: cada célula que tenga dos o tres vecinas vivas pasa a la siguiente generación.
- Fallecimiento: cada célula que tenga cuatro o más vecinas vivas muere por superpoblación. Las células con solo una o ninguna vecina viva muere por aislamiento.
- Nacimientos: cada célula muerta que tenga exactamente tres vecinas vivas renace.
Veamos un ejemplo sencillo.
En la figura hay cinco células vivas y el resto están muertas. Observemos que, por la aplicación de la regla número 2, las células 3a y 1b morirán en la siguiente generación, en el próximo tic de la simulación o en el próximo "latido". Asimismo, podemos ver que gracias a la regla número 1 las células 3b, 3c y 2c seguirán vivas. Y debido a la regla número 3, en las posiciones 2a y 4b, nacerán (o renacerán) células.
Y luego...
Podemos ver que luego de cuatro latidos, las células vivas de la población vuelven a alcanzar la configuración inicial, aunque desplazada hacia abajo a la derecha. Se ha desplazado. Por eso, a este patrón se lo llama “glider” o “deslizador”.
El ejemplo es solo una muestra de las maravillas que pueden emerger de este tablero y sus sencillas reglas. Lo fascinante radica en que dada una población inicial, su conducta puede ser a la vez interesante e impredecible.
Hace unos quince años, cuando superé los ejercicios de los libros de estudio y quise medirme escribiendo un programa de verdad, se me ocurrió la idea de un juego basado en el de Conway. Si el de él era de cero jugadores, el mío tendría un jugador. Así nació Life Fighter, un juego de computadora en el que controlamos a una célula del Juego de la Vida de Conway y entre latido y latido debemos movernos a una posición que nos asegure vivir en la siguiente generación.
Cuando hace una semana leí sobre la muerte de Conway, busqué el código fuente de mi juego en internet y le hice algunas modificaciones para que corra con las versiones actuales del lenguaje de programación y las bibliotecas gráficas utilizadas. Me sorprendió que los ajustes y arreglos necesarios no fueron tantos y en un par de horas tuve el juego corriendo en mi computadora. Un homenaje íntimo que se hizo público al liberar una nueva versión del programa.
Ahh.. pensé que era Milton Bradley el que había muerto..