El Juego de la Vida [Java]
Se trata de una implementación chichi del famoso Juego de la Vida en Java, ya que Burnhack me ha picado con el gusanillo de la curiosidad
En fin… el programa simula un espacio de células que cumplen con las reglas básicas del juego, permite dibujar nuevos patrones, generar granjas aleatorias, y poner en marcha automática o manualmente. De paso me sirvió para explicarle a mis hermanos el porqué del emblema hacker

Puedo decir que me divertí mucho programando, y que a la vez me da pena no haber podido dedicarle más de tres días: el resultado es un programa que funciona bien cuando se ejecuta de manera normalita, pero con la opción de zoom hay problemas. Y aquí les doy un par de consejos: puesto que al principio el programa lo iba a hacer junto con Burnhack, utilicé una clase que él utilizaba llamada BufferedImage (para dibujar las figuras). Luego, cuando me dí cuenta de que no entendía ni mierda nada del código de mi amigo, decidí hacer la lógica desde cero; y aquí van los consejos:
- Hacer comentarios es SUPREMAMENTE IMPORTANTE, sobre todo cuando se programa en grupo
- Cuando hagas este tipo de proyectos es mejor que uses Canvas; yo caí en cuenta muy tarde y ya me da flojera arreglarlo
Por supuesto, el programa está disponible para que lo estudien, lo copien, lo regalen, etc. Espero le sirva a alguien. Les quedo debiendo la explicación porqué es algo largo
Nota: los iconos los he tomado de Icojoy
Compilación y ejecución…
#compilación
javac Glider.java
#ejecución normal
java Glider
#ejecución con la característica zoom (umm, que mal programador soy
)
java Glider –zoom
26 Comentarios | deja el tuyo





Guarda con el Gusanillo!
Lo probare en cuanto encuentre tiempo, estos últimos días es estado muy ocupado xD
Nos vemos.
Hola CasiDiablo !!! que bien te quedo y me has superado porque aunque no funcione bien el zoom.. El mio directamente no funcionaba porque no tenia ni idea de por donde cogerlo. Pero mi interfaz esta mucho mas guapa!!:P jeje
Ahora el reto es…entre ambos lograremos manejar los patrones del golly????????
Saludos cuidate!
Espero entonces tu programa para ver que tal, y si es el caso lo publico aquí (si quieres)
Un saludo!
ya estamos amigo!
Hola muy buen programa, lo corri y anda tiene algunos errores pero esta re biennn
saludos
Hola casidiablo, tengo una consulta estoy realizando un automata celular que simula el comportamiento del sida. Mi programa funciona bien, es una matriz pero solo muestra numeros (0 celda vacia, 1 celula sana, 2 celula infectada) y quiero que muestre una matriz pero de colores (0 blanco, 1 verde, 2 blanco) como puedo hacer eso a partir de una matriz que contiene esos numeros?
@Jonathan: estás desarrollando el programa de cero, o basaste algo en lo que he puesto en ese ejercicio.
En cualquier caso, si deseas que te ayude de la mejor manera, deberías ponerlo en el foro de Java de elhacker.net, con el código que llevas en donde se te ayudará bastante.
Un saludo!
men por faovr agregame lo corro en net beans pero me sale unos cuantos errores
Hola, si estoy programando desde cero, esta listo casi en su totalidad (tratare de subir el codigo lo antes posible) pero no se como implementar la parte grafica, lo que quiero es que muestre una malla como la de tu programa y que en base a los numeros de una matriz (0, 1 y 2) mustrre dsitinots colores. Te describo las reglas del juego:
1.El universo del problema es una matriz nxn
2.Cada localidad de la matriz es una celula
3. Se utiliza la vecindad de Moor, algo asi:
0 1 0
1 * 1
1 1 1
donde * es la posicion de la matriz que queremos comparar y los numeros a su alrededor son sus vecinos adyacentes
4. La matriz tiene fronteras periodicas
5.Una celula infectada tiene probalilidad p1 de morir
6.Con probalilidad p2 nace una celula
7. Una celula sana se infecta con una probalilidad p3 si y solo si en la vecindad existe una celula infectada
8. Con Probalilidad p4 un virus muere
9.Cada celula infectada produce n virones (sus hijos) y esta muere.
10. Si el 80% del sistema esta infectado, este colapsa
11. El viron tiene 5 oportunidades de infectar una celula adyacente
Esas fueron las reglas, que ya las programe en su mayoria. Gracias por tu atencion
Un saludo
por kulpa de esa cosa estoy inmerso en una creisis existencial, maldigo el dia kien ideo eso de la makina de turing, touring, o komo se escriba!
hola.. me parece genial lo q haces por todos nosotros q estamnos empezando en el mundo de la programacion java.. Me gustaria saber si NetBeans sirve para software libre, o sea me rifiero a q si yo programo NetBeans en windos ese mismo prograna me sirva para software libre o se tendria q hacer una modificacion?. Me gustaria q me respondieras a mi correo. Por favor.
@Amagax:
Puesto que si lo haces en Netbeans, la programación es en Java, y todo eso es multiplataforma….. conclusión: te corre en cualquier sistema operativo.
Un saludo!
Gracias por tu respuesta.. =)
Bien hecho, no lo he descargado así que te pregunto: ¿Solo sirve para la versión original, o puedes crear otras variantes del juego?
Es que tengo un proyecto de un compilador que consiste en un lenguaje que establezca las reglas para este juego, la ventaja es que solo tengo que hacer un compilador fuente-fuente que genere el código java en un archivo y luego llamar a la consola para compilarlo, pero en mi lenguaje lo estoy extendiendo a otras variantes de los universos cuadrados (Iba a hacerlo de N dimensiones, pero no soy muy bueno con la API 3D de java).
Hace tiempo hice una versión que mostraba todo en la consola con println, pero era una porqueria para una unidad de programación orientada a objetos.
buenos dias..
Ya he visto como han hecho el juego de la vida, pero quisiera saber si existe o ustedes tienen un codigo de este juego pero lo mas simple posible, sin zoom ni nada de esto, como para principiantes muy principiantes, gracias..
Yo tengo un ejemplo, el que utilicé para mi compilador el semestre pasado, está muy simple ya que solo mete las celulas a una cadena y las muestra en un JTexArea:
http://rapidshare.com/files/357199137/Juego_de_la_Vida.rar.html
Puedes modificarlo un poco en el archivo Main para que muestre todo en linea de comandos (Limpiando pantalla con un dll).
Muhisimas gracias, esta muy muy bien explicado y todo, nuevamente gracias.