Global

Methods

_contarvecinos(x, y)

Contar Vecinos

Esta funcion permite contar los vecinos de una celula, sea que esta viva como si esta muerta y devuelve la cantidad de vecinos vivos que esta tenga.

Esquema:

Esquema:

   3   4   5
   |   |   |
   v   v   v
  __ ___ ___
 |   |   |   | <-3
 +---|---|---|
 | 1 | 1 | 1 | <-4
 +---|---|---|
 |   |   |   | <-5
 +---|---|---|

calcular el vecino de 4,4

xCelula la cantidad de filas de celulas yCelula es la cantidad de columnas de celulas

variable estado
prev[4][3] verdadero
prev[5][3] falso
prev[5][4] falso
prev[5][5] falso
prev[4][5] verdadero
prev[3][5] falso
prev[3][4] falso
prev[3][3] falso
Parameters:
Name Type Description
x int

filas

y int

columnas

Source:

getPuntoBajoMouse(e)

Celda seleccionada (getPuntoBajoMouse)

Esta funcion permite al programa determinar en sobre que celda se encuentra posicionado el mouse a partir de las coordenadas devueltas por el evento mousedown.

Para calcular este valor, se realizan las siguientes operaciones

X=

Donde:

e.pageX: posicion del cursor en x e.pageY: posicion del cursor en y

gx.ctx.canvas.offsetLeft: pixeles desde el lienzo hasta el borde de la pantalla a la izquierda gx.ctx.canvas.offsetright: pixeles desde el lienzo hasta el borde de la pantalla arriba gx.tamaño_celula: tamaño de la celula en pixeles

Parameters:
Name Type Description
e Object

eventos devueltos por el listener de mousedown

Source:

iniciar()

Iniciar

Inicia el temporizador que avanza cada generacion

Source:

init()

Init

Esta funcion permite inicializar todas las variables necesarias para el funcionamiento de este programa

Source:

limpiar()

Limpiar

Cambia el estado de cada celula a apagado

Source:

parar()

Parar

Limpia el temporizador que ejecuta la funcion de siguiente_generacion

Source:

procesarCelula(celula)

Procesar Celula

Esta funcion permite calcular la posicion de la celula y determinar su estado

Parameters:
Name Type Description
celula Object

Objeto de puntos en X,Y definido en la clase Puntos

Source:

siguiente_generacion()

Siguiente Generacion

Esta funcion se encarga de calcular la siguiente generacion de la partida, para esto, crea un nuevo arreglo con la matriz aun vigente, luego hace un barrido por cada una de las celdas buscando cuantas celulas tienen vecinos y evalua su situacion actual segun las reglas del juego de la vida. Una vez hecho esto, se copia la nueva matriz sobre la anterior, sobreescribiendola y mostrandola en pantalla.

Reglas del juego de la vida

  • Cualquier celula viva con dos o tres compañeros vivos, sobrevive
  • Cualquier celula muerta con tres compañeros vivos, revive
  • Todas las demas celulas mueren en la siguiente generacion. De la misma forma, las celulas muertas, permanecen muertas

(Conway's game of Life, Wikipedia)

Source: