miércoles, 28 de agosto de 2013

El juego de la vida de John Conway

El juego de la vida fue diseñado por el matemático británico John Horton Conway en 1970. La idea es disponer de un tablero de x por x casillas, donde cada casilla puede tomar el valor de 0 o 1.
 Las celdas con valor 0 están muertas y las celdas con valor 1 esta viva, el algoritmo debe recorrer las celdas y examinar las celdas vecinas (alrededor), según las celdas vivas o muertas vamos a cambiar el estado de la casilla examinada. Así es como el tablero va cambiando.



REGLAS:

  • Casilla con 0 o 1 vecinos muere.
  • Casillacon mas de 3 vecinos muere.
  • Casilla con 2 o 3 vecinos vive.
  • Si la casilla no esta poblada, y tiene 3 vecinos se activa.


Programacion:


En este caso yo realize el proyecto por "cosola" y en 2 lenguajes diferentes Python y JAVA. A continuacion explicare algunas partes del codigo:


CREAR LA MATRIZ E INTRODUCIR LOS VALORES

En esta parte lo único que hacemos es crear una matriz, donde podremos introducir los valores de "0"  y "1" y posteriormente la imprimimos en pantalla.



En python: 
 En java: Como vemos en java es un poco mas extenso, pero lo unico que hacemos aqui de diferente es que hicimos metodos para llenar y mostrar. Tambien en el main incluimos los metodos que mas adelante mostraremos en el blog.


ANALIZAR VECINOS

Aqui nos encargamos por medio de una funcion en python o un metodo en java (segun sea el caso) analiza los vecinos de la celda a analizar, para saber si estan vivos o muertos.

En python:
  En java:

REGLAS

En esta parte empezaremos aplicar las reglas, ya que ya tenemos analizados los vecinos de la celda a examinar y segun sea el caso la celda podria morir ("0") o vivir "1")
En python:
En java:


VOLVER A IMPRIMIR

El ultimo paso por asi decirlo, es volver a imprimir toda la matriz pero con los nuevos valores segun sea el caso, cabe decir que todo este codigo debe de estar dentro de un ciclo para que se ejecute automaticamente.

En python:
En java:


  CAPTURAS DE PANTALLA:


 


CONCLUSIÓN

Podemos concluir que el juego de la vida es un algoritmo celular interesante de programar, ya que deserolla mucha logica , en lo personal a mi me ayudo a practicar mucho mas el lenguaje de python y me di cuenta que es un lenguaje "facil" y comprime mucho el codigo, lo cual creo que es excelente.

1 comentario: