Está versión del Juego de la vida, llamada simplemente Game of Life de alguien que firma como Copy está escrita en JavaScript, de modo que se puede ejecutar directamente desde el navegador. En la parte de izquierda hay botones para centrar y encuadrar la imagen, hacer zoom o desplazarla, algo que también se puede hacer con el ratón. Es una forma rápida de explorar el autómata celular más famoso de la historia.
Resulta bastante rápida y cómoda de utilizar: los botones de la parte superior sirven para comenzar la simulación, rebobinar, avanzar paso a paso, etcétera y luego se pueden importar o exportar configuraciones predeterminadas, así como generar una configuración inicial aleatoria o usar una extensa librería de patrones, que además incluyen explicaciones interesantes.
Algo interesante es que utiliza un algoritmo llamado Hashlife, que permite acelerar enormemente los cálculos del que por otro lado es un algoritmo. El asunto tan solo se complican por el hecho de que el mapa crezca y crezca, aumentando la cantidad de celdas que hay que recalcular, examinando las celdas vecinas. En principio el mapa es infinito y crece a medida que se expanden las celdas «vivas» en el juego.
Hashlife emplea una técnica llamada memoización que es un método de optimización similar a la de la memoria caché pero para cálculos: básicamente una vez que se realiza un cálculo (por ejemplo: en qué se convierte esta región de 8×8) se guarda en memoria y «recuerda», de modo que si se vuelve a pedir el mismo cálculo se ofrece directamente el resultado y no hay que hacer el cálculo completo otra vez. La cantidad de datos almacenados depende del tamaño del mapa, su complejidad –las zonas guardadas se examinan mediante funciones hash– y el número de generaciones que se quieran anticipar; por lo visto resulta tremendamente efectivo.
El juego y su interesante implementación se puede examinar a partir del código en Github: Life, para aprender de él o hacer modificaciones.
Relacionado:
- Cruce de autómatas celulares: la Regla 30 y el Juego de la vida
- La Regla 30 al ritmo de la música
- Tres problemas sobre un autómata celular, la «Regla 30» de Wolfram
- Una máquina con botones y ledes para explorar los autómatas celulares
- Un juego dentro de un juego dentro de un juego dentro de…
- El juego de la vida emulado dentro del juego de la vida
- Fotos espirales con efecto Droste
- Tutorial sobre el efecto Droste en castellano
- Efecto Droste Escheriano
- Escher, revisitado y explicado
- El arte escheriano de Mike LaPalme
- Recursion, de Maxim Zhestkov
- Recursividad infinita
- Recurrencia infinita compartiendo pantallas en el mismo ordenador
- Los algoritmos recursivos de vuelta atrás (backtracking)
- Meme recursivo de Winnie the Pooh
- Un juego dentro de un juego dentro de un juego dentro de…