Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   El juego de la vida (https://www.clubdelphi.com/foros/showthread.php?t=33040)

[Gunman] 25-06-2006 23:19:16

El juego de la vida
 
1 Archivos Adjunto(s)
Este programa no está escrito exactamente en Delphi, sinó que está escrito en Pascal.
Bueno, simplemente el programa intenta solucionar este problema planteado por la Olimpiada Informática Española. Aquí pongo la dirección del PDF enunciando el problema:
http://www.aula-ee.com/oie/pbs/vida.pdf
El problema está calificado con un 3 en el nivel de dificultad (puntuación de 0 a 9).
+ info. Para los que queráis saber más sobre "El juego de la vida".
Y finalmente, lo que yo he hecho está en el archivo adjunto.
El código está explicado paso a paso, el problema es que está en catalán... Pero es muy fácil entenderlo, imagino que no os haran falta los comentarios.
Bueno, si puedo traduciré los comentarios en cuanto tenga tiempo.
Saludos!

Neftali [Germán.Estévez] 26-06-2006 09:42:08

Interesante.
Muchas veces había visto el juego, pero no sabía exactamente las reglas.

[Gunman] 26-06-2006 14:01:42

Ahora me he puesto manos ha la obra para hacer un programa ya con Delphi, quiero hacer algo así:
- Un tablero de AxB celdas.
- Primero el usuario marca las celdas (situación inicial).
- El usuario marca cuantos ciclos evolutivos desea visualizar.
- El programa va dibujando las celdas en cada ciclo evolutivo hasta llegar al número indicado por el usuario o hasta que no quede ni un habitante.

Neftali [Germán.Estévez] 26-06-2006 15:41:34

Para el tablero y asignar valores puedes echarle un vistazo al ejemplo de Sudokus, con el que hace unos días Seoane y yo mismo estuvimos haciendo pruebas.

seoane 26-06-2006 17:13:17

2 Archivos Adjunto(s)
Una primera aproximacion, aprovechando alguna rutina del programa para hacer sudokus ;) , podria ser esta. Disponemos de un tablero de 50x25, con forma de donut (Toroidal), para cambiar el estado de un recuadro solo hay que hacer clic sobre el. Una vez que el tablero esta dibujado en el menu "Evolucionar" podemos iniciar o parar la evoluvion. Para dibujar el tablero mejor hacerlo con la evolucion parada, pero una vez en marcha seguimos pudiendo cambiar el valor de los recuadros.

Echale un vistazo y si quieres lo comentamos. Tambien dejo, aunque no viene mucho a cuento el programa de sudokus tal como me quedo al final, le di un repaso de arriba a abajo asi que si no encuentras algunas de las rotunias que hiciste no te enfades Neftali ;)

[Gunman] 26-06-2006 18:18:43

Ya tengo el tablero hecho, vaya...
Si hubiese revisado el este post quizás no hubiese perdido tanto tiempo...
Muchas gracias de todas formas!

PD: Cómo puedo hacer un gif animado a partir de una serie de imágenes?

[Gunman] 26-06-2006 18:25:29

seona, no habia visto que habias puesto el juego de la vida también.
Lo has hecho tu? Está muy bien. El que yo estoy haciendo es algo distinto, ya lo pondré en cuanto lo termine.

seoane 26-06-2006 18:31:51

1 Archivos Adjunto(s)
Por cierto en el ejemplo anterior, mi tablero tiene forma de donut, aunque en el tablero clasico parece ser que no es asi, es decir cuando se llega a un borde ya no se puede continuar. Cambiando la rutina "Contar" por esta otra se soluciona el problema:

Código Delphi [-]
function TfrmMain.Contar(i,j: Integer): Integer;
var
  x,y: Integer;
begin
  Result:= 0;
  for x:= i-1 to i+1 do
    for y:= j-1 to j+1 do
    begin
      if (x>=0) and (x < COLUMNAS) and (y>=0) and (y < FILAS) then
        if Tablero[x,y] then
          inc(Result);
    end;
  if Tablero[i,j] then
    dec(Result);
end;

Este cambio es necesario para que funcione el siguiente ejemplo sacado de la wikipedia. Pistola de planeadores de Gosper (Gosper Glider Gun)

Aqui os dejo el tablero, solo hay que cargarlo y darle a evolucionar

Neftali [Germán.Estévez] 27-06-2006 09:53:51

Cita:

Empezado por seoane
...Pistola de planeadores de Gosper (Gosper Glider Gun)

???? No sabía que existían configuraciones cíclicas. ¿¿¿¿
Interesante.

Robert01 28-06-2006 03:38:45

Hola

hace mucho bajé una versión del juego d ela vida en delphi de:
Ric Colasanti
Unit of Comparative Plant Ecology
University of Sheffield

saludos

Neftali [Germán.Estévez] 28-06-2006 09:31:19

Cita:

Empezado por seoane
...si no encuentras algunas de las rotunias que hiciste no te enfades Neftali

En absoluto.
Estaba claro que para "dejarlo decente" había que darle un repaso; Muchos cosas fueron saliendo sobre la marcha y no eran nada óptimas.
En concreto, me ha gustado mucho el cambio de filosofía a la hora de guardar los tableros; Un único fichero y con el historial para poder deshacer.
No así el nuevo sistema de asignar los números, creo que hacen falta muchos clicks de ratón y no es cómodo, pero dicen que "sobre gustos no hay nada escrito..." .

Un saludo de sudoku.
7 5 1
2 3 4
6 8 9


La franja horaria es GMT +2. Ahora son las 07:46:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi