RSS Feed

El juego de la vida en JS

1

marzo 28, 2012 by - @Peesstt

El juego de la vida no es un juego en donde hay jugadores, ganadores ni perdedores al menos desde su forma más básica. Es un ejemplo de un autómata celular diseñado por John Conway que se desenvuelve en una grilla de celdas cuadradas que se extiende hacia el infinito en todas las direcciones. Una celda puede estar ‘viva’ o ‘muerta’. La evolución del juego va a estar dada por las celdas que se establezcan como ‘vivas’ en la transición ‘cero’, lo que sería el estado inicial del juego. En las transiciones posteriores la evolución se da por un conjunto de reglas en donde cada estado depende del número de celdas vivas, las reglas son:

– Una celda ‘muerta’ con exactamente 3 celdas vecinas ‘vivas’ “nace” (al turno siguiente estará viva).
– Una celda ‘viva’ con 2 ó 3 celdas vecinas ‘vivas’ sigue viva, en otro caso muere o permanece muerta ya sea por soledad o sobrepoblación.

El estado de todas las células se tiene en cuenta para calcular el estado de las mismas al turno siguiente. Todas las células se actualizan simultáneamente. El hecho de que todas las celdas se actualicen simultáneamente hace que el desarrollo del juego se haya convertido en un desafío de programación para muchos y que otros adopten el patrón llamado ‘glider’ del juego de la vida como un emblema, tal es el caso de la cultura hacker.

Una expliación más detallada del juego de la vida y sus patrones la pueden encontrar acá en inglés y en español siendo la que es en inglés más completa.

Acá les dejo un par de ejemplos del juego de la vida hecho en JS así como también una versión colaborativa hecha en node.js:

Juego en JS con ejemplo de glider

Juego colaborativo en node.js

Juego en JS con un universo más grande