Dead Channel






      "The sky above then port was the color of television, 
       tuned to a dead channel..."
      Neuromancer


16 January, 2007

Juego de la vida II

Escrito a las 21:10 en la categoría: Juegos

Esta segunda entrega no se ha hecho esperar mucho y viene con código y todo :) La semana pasada colgué un programa del juego de la vida muy simplito con la promesa de mejorarlo. Ya comenté que era una espinita que tenía clavada y por fin me la he sacado.

Al final no solo he cumplido con las opciones que comenté, sino que he añadido algunas cositas más. Ahora las celulas nuevas tienen un color diferente a las que permanecen vivas, recorriendo la gama del arcoiris, con lo que podemos saber la antigüedad de los distintos patrones. Además he implementado el zoom, la posibilidad de elegir las reglas, pausar el juego y cambiar de estado cualquier celula en cualquier momento. Es decir, dibujar nuestros propios patrones o modificar los que haya en pantalla con un pequeño click (“¿qué pasa si mato esta célula…?”)

La verdad es que ahora es mas entretenido y bonito de mirar, pero como prometí, no está nada optimizado, con lo que puede que si tienes un ordenador antiguo se resienta un poco, sobre todo al comenzar una red nueva.

Los controles son bastante sencillos, para crear un nuevo juego con otras reglas es suficiente con escribir en cada recuadro los números de células vecinas que permiten que cada célula viva o muera. Como ejemplo están escritos por defecto los números que definen el juego original de Conway (23/3). En el wiki podéis encontrar otras combinaciones, hay varias curiosas de ver, como la 5678/35678 que al final resulta en lo que parece un mapa físico, sobre todo si lo lanzamos en color rojo.

Para más información podéis ver Aquí más enlaces. El código es totalmente libre (eso sí, se agradece si nombráis la fuente, un trackback y esas cosas :)), tampoco hay que quebrarse mucho la cabeza para sacarlo, pero para el que quiera echarle un vistazo lo enlazo abajo. Os dejo con el juego, ¡que lo disfrutéis!



Código:

No he llevado mucho la cuenta, pero han sido entre 10 y 15 horas de desarrollo y son unas mil y pico líneas con comentarios, no es mucho. Además hay mucho código innecesario porque para representar las células he usado los módulos OVNI y Particula de M3t30r0s, (que espero terminar pronto también) que tienen un montón de funciones de movimiento y demás… Tocando el código se pueden cambiar algunas cosillas más que no he querido incluir en la GUI para no alargar mucho el tiempo de programación y porque tampoco era el objetivo. Podéis ampliar el tamaño de la matriz, darle distintas formas a las células, poner la sucesión de colores en aleatorio… Unas cuantas cositas que fueron implementadas mientras hacía pruebas, solo es cambiarlo en los contructores. No me enroyo más, aquí lo tenéis:

Juego.java, jvc.java, Pizarra.java, OVNI.java, Particula.java.

Si Queréis colgar el Applet en vuestra página solo tenéis que poner:

<applet code = Juego.class ARCHIVE = “http://juanmi.malak.googlepages.com/JVCcompleto.jar” NAME = “JVC” WIDTH = 420 HEIGHT= 480></applet>

Deja tu opinión - 4 »

Si quieres hacer TrackBack de esta entrada, usa esta URI: (Simplemente copia la dirección de la barra de herramientas)

  1. Pues es una cosilla bastante maja. De todos modos, cuando te mencionaba tiempo atrás lo de hacer una versión un poco ampliada con un sistema simple (como microorganismos), tampoco me refería a algo que necesitase de muchos gráficos, en realidad: el problema estaría en programar el desarrollo matemático de una serie de ecuaciones (que en el fondo están “precocinadas” en Genética Evolutiva) y disponer un sistema de randomización de otros factores para que funcionase de forma selectiva. Sería algo más pedestre.

    Comment by Illuminatus — 16 January, 2007 @ 21:57

  2. Mmmm Estoy seguro de que hay proyectos y páginas al respecto para aburrir al igual que sobre el juego de la vida (pronto siguiente entrega con patrones, capturas y más enlaces ;)) Personalmente me interesa más el que pueda visualizarse esa evolución que el simple hecho de la simulación teórica.

    En cuanto a las dificultades que podrían encontrarse en un proyecto así tienes que destacar que si quieres informaión genética tienes almacenar esa información para cada individuo, establecer cómo se trasnmitirá a la siguiente generación, y cómo influye esto en la supervivencia de la especie. Además si lo representas/simulas habría que establecer los pares genotipo-fenotipo. Todo eso junto y multiplicado por el número de individuos puede suponer bastante cálculo… A mi es algo que me llama bastante la atención a ver si encuentro algo en internet interesante al respecto.

    Por cierto Iluminatus, ¿tienes conocimientos de informática y/o programación? Es decir, ¿tu propuesta es activa o pasiva? ;)

    Comment by Juanmi — 18 January, 2007 @ 17:18

  3. De informática y programación no sé nada, lo siento. Lo que puedo aportar es la parte de modelar (o modelizar, si no aborreces ese anglicismo asqueroso) un sistema sencillo pero biologicamente y cientificamente estricto que tenga sentido geneticamente y ecologicamente.

    En realidad, al referirme a la Genética Evolutiva no me refería a dar información para cada bicho, por lo menos no compleja, sino algo bastante sencillo en forma de matriz numérica, que es una técnica empleada en cladismo y filogenia. Esto ahora se hace para trazar los linajes hacia los orígenes (hacia abajo) y desvelar los parentescos (la filogenia)pero la idea sería desarrollarlo hacia arriba.

    Si quieres te envío un bosquejo de ello, me lo pensé hace tiempo pero no llegué a formularlo.

    Comment by Illuminatus — 18 January, 2007 @ 23:10

  4. OK, si no te importa te mando un correo y me respondes con la explicación y así no eternizamos los comentarios. Si me convences e implemento algo ya haré un post sobre el tema ;)

    Comment by Juanmi — 19 January, 2007 @ 14:28

RSS suscríbete a los comentarios de este post

Deja tu opinión

El parrafo se justifica solo, nunca se mostrará el correo, están permitidas etiquietas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Medida anti-spam. Por favor, escribe el texto de la imagen en el cuadro de texto para saber que no eres una tonta máquina automática que intenta que compre muñecas hinchables ;).