De lo simple a lo complejo: GAME OF LIFE

El Game of Life diseñado por John Horton Conway ha fascinado aconway2013 generaciones de matemáticos e informáticos desde que fuera publicado en octubre de 1970 en Scientific American. Si tuviéramos que escoger una palabra para describir el Game of Life, esa palabra sería sencillez. Fue su risible sencillez la que lo hizo mundialmente famoso casi desde el principio, al juego y a su dueño (al menos entre ciertos círculos de individuos tendentes a llevar gafas). Si tienes algunas nociones de programación, no te resultará difícil programarlo tú mismo. También puedes intentar jugarlo en un folio si eres socio del club del papel.

El universo del Game of Life es una malla bidimensional ortogonal infinita de casillas. Las casillas suelen representarse en forma de pequeños cuadrados. Dejando de lado estos complicados palabros, una forma fácil de visualizar este universo es imaginar un tablero de ajedrez que se extiende infinitamente en las cuatro direcciones, y en el que todas las casillas son (al menos al principio) del mismo color. Un detalle: cuando decimos que este tablero infinito constituye el universo del juego, decimos que el juego se desarrolla exclusivamente dentro de él, sin excederlo jamás. Esto nos dará qué hablar más adelante.

pic8

Cada casilla del tablero tiene dos posibles estados: viva o muerta. Un modo de representar esta distinción es colorear las casillas vivas de negro y las muertas, de blanco. Puedes elegir cualquier otro par de colores. De ahora en adelante, diremos que un tablero con todas las casillas muertas es un tablero muerto. En nuestro código de colores, sería un tablero con todas sus casillas en blanco.

Como en la mayoría de los juegos de mesa o muchos videojuegos de rol, dividimos el tiempo en unidades discretas o turnos, que en el Game of Life suelen recibir el nombre de generaciones. En cada turno o generación, el tablero poseerá un aspecto determinado. Este aspecto podríamos describirlo fácilmente enumerando sólo aquellas casillas que están vivas (asumiendo que las demás estarán muertas). Dicha descripción del tablero recibe el nombre de estado. Es posible dejar evolucionar al Game of Life durante miles y miles de generaciones, y cada uno de ellas traerá consigo un nuevo estado del tablero.

Life01_medium

Pero vayamos al meollo del asunto. Las reglas que determinan si una casilla vive o muere son las que siguen:

  1. Una casilla viva con menos de dos casillas vecinas vivas, muere en la siguiente generación.
  2. Una casilla viva con dos o tres casillas vecinas vivas, vive en la siguiente generación.
  3. Una casilla viva con más de tres casillas vecinas vivas, muere en la siguiente generación (¡superpoblación!).
  4. Una casilla muerta con exactamente tres casillas vecinas vivas, vive en la siguiente generación.

Nótese que cada casilla tiene exactamente ocho casillas vecinas.

Lo interesante del Game of Life es que es un juego de un solo movimiento. Nosotros los jugadores decidiremos únicamente un estado inicial del juego. En otras palabras: en el tablero muerto (completamente en blanco) marcaremos un conjunto de casillas como vivas (en negro). Llamemos a este instante estado 0. El estado 1 no dependerá de ningún input introducido por nosotros (salvo indirectamente), sino que será una evolución del estado anterior (el estado 0) según las cuatro reglas citadas. A su vez, el estado 2 estará determinado justamente por el estado 1. El estado 50.000, siguiendo esta lógica, será una evolución del estado 49.999. Nos encontramos, pues, ante un sistema completamente determinista, donde, dado un mismo estado 0, todos los estados desplegados después de él siempre serán los mismos.20080125_18talbottgol

Al elegir nuestro estado 0 y arrancar el juego, un curioso mundo se despliega ante nuestros ojos. Se crean y destruyen extrañas figuras. Diminutas naves emprenden un viaje infinito hacia los horizontes del tablero. Emergen formas de vida estáticas; otras oscilan permanentemente. Algunos estados 0 acabarán tarde o temprano en un tablero muerto; otros darán lugar a una cascada infinita de estados y podrán generar potencialmente una población de millones y millones de casillas vivas. Aparecerán ante nuestros ojos bellos patrones que, si tenemos algo de imaginación, nos recordarán a organizados hormigueros o a estaciones espaciales de atraque de naves de alguna avanzada civilización. Y todo ello a partir de cuatro sencillas reglas.

Turing_Machine_in_Golly

Las implicaciones del Game of Life son múltiples. Hablaremos de ellas en la próxima entrega. Por ahora, descárgate este simulador y ¡pruébalo tú mismo!