Skip to content

Clon del joc de la vida disenyat per John Horton Conway.

License

Notifications You must be signed in to change notification settings

Aredhel269/game-of-life-js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The game of life es un modelo discreto de un automata celular, ideado por el matemático John Horton Conway.

Este modelo se basa en unas pocas reglas que define el comportamiento de las “células” su comportamiento. Reglas:

  • Todas las células se actualizan simultáneamente en cada turno.
  • Una célula muerta con exactamente 3 células vecinas vivas “nace”.
  • Una célula viva con 1 o ningún vecino muere.
  • Una célula viva con 4 o más células vivas vecinas muere.

Mockup

mockup

Lógica

Calcular el nuevo estado de la célula

Si la célula está muerta, solo hay 1 forma de que reviva. Si la célula está viva …

Caso 1: La célula está muerta.

  1. Cuenta cuantas células vecinas están vivas.
  2. ¿El contador es igual a 3?
    1. Sí → La célula revive.
    2. No → Continua con la siguiente célula.

Caso 2: La célula está viva.

  1. Contar el número de células vecinas vivas.
  2. ¿El contador es menor o igual a 1?
    1. Sí → La célula muere.
    2. No → Revisa la otra condición
  3. ¿El contador es mayor o igual a 4?
    1. Sí → La célula muere
    2. No → La célula se mantiene viva.

Diagrama de flujo para determinar el estado de la célula:

cell_state

Contar vecinos

Para poder actualizar el estado de la célula es necesario saber cuántos vecinos vivos adyacentes hay.

Para el proyecto se optó por una lista bidimensional como la estructura de datos. Por lo que para saber cómo acomodar los índices para contar los vecinos. En la imagen se muestra una matriz de 3x3 de cómo se contarían los vecinos de la célula en el centro.

centro celula

Algo a tener en cuenta antes de continuar es que se decidido que cuando una célula esté en el borde del mapa, las células vecinas serán la que estén al lado opuesto, como se muestra en la imagen:

lateral

Pseudocódigo para contar los vecinos:

  1. Obtener el índice de la fila anterior y la fila siguiente.
  2. Obtener el índice de la columna anterior y columna siguiente.
  3. Contar las células vivas en la fila anterior.
  4. Contar las células vivas en la fila actual.
  5. Contar las células vivas en la fila siguiente.
  6. Retornar el total

Diagrama de flujo para obtener los índices de las filas adyacentes.

filas flow.png

Diagrama de flujo para obtener los índices de las columnas adyacentes.

columnas flow.drawio.png

Diagrama de flujo para contar las células vecinas.

ContarVecinosR.drawio.png

El análisis y los diagramas de flujo solo se realizaron de lo más importante del proyecto, lo demás fue improvisado sobre la marcha 😋

Referencias

Juego de la vida - Wikipedia, la enciclopedia libre

Play John Conway's Game of Life

About

Clon del joc de la vida disenyat per John Horton Conway.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 47.3%
  • JavaScript 37.8%
  • CSS 14.9%