Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: So 15.04.07 18:28 
Moin!

Nachdem ich in der DP mal wieder ein interessantes Game Of Life Projekt gefunden habe kramte ich meine frühere Umsetzung hervor und polierte sie ein wenig auf. Obwohl das Programm keinen wirklich Sinn hat könnte ich stundenlang die Muster anschauen...

Wer Game Of Life nicht kennt, kann hier den Wikipediaeintrag lesen.

Meine Umsetzung bietet:


  • Persiodisches Spielfeld
  • 20 Anfangsmuster
  • Laden und Speichern der Muster
  • Stufenlose Regulierung der Tickgeschwindigkeit
  • Zuschaltbares Diagramm das die Anzahl der momentan lebenden Zellen visualisiert


Ich hoffe es funktioniert alles.

Danke fürs ansehen!

Download ist eine .exe-Datei mit 672 kb.
Einloggen, um Attachments anzusehen!
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 16.04.07 19:27 
Will niemand mal was dazu sagen? :(
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 16.04.07 20:11 
Games of Life gibt's viele, deines sieht wirklich gut aus und bietet viele vorgefertigte Muster, was mich allerdings stört, ist das Setzen von Zellen: Anscheinend wird im onMouseMove aus einer Zelle eine nicht-zelle gemacht, wenn der Mauszeiger gedrückt ist. So ist es schwer, Linien zu ziehen, finde ich, da zwangsläufig Lücken entstehen. Man sollte ein Setz/Löschwerkzeug haben, anstelle der Klick1=Setzen, Klick2=Löschen

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Mo 16.04.07 20:21 
Das Design ist echt gut gelungen, aber mir ist da was aufgefallen: Wenn man das Diagrammfenster öffnet, wird es ganz am linken Rand angezeigt (nur zur Hälfte), wäre in der Bildschirmmitte besser :wink: . Außerdem wäre es toll, wenn bei einem "Neuanfang" auf der linken Seite des Fensters nicht das ganze Diagramm gelöscht würde.

Silas

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 16.04.07 20:22 
Moin & danke fürs Review.

Das mit dem Linien ziehen ist mir auch aufgefallen. Allerdings krieg ichs so wie ichs gemacht hab leider nich besser hin. Evt. wäre ein richtiges Linien-Ziehen Tool ganz cool :) So wie in einem Bildbearbeitungsprogramm.

Was hälste davon?
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 16.04.07 20:37 
Ich dachte an eine Booleanvariable, die "Zeichnen" heißt. ist sie false, wird bei Klick gelöscht, ist sie true, wird bei Klick gezeichnet. Ist dein Feld nicht sowieso ein Array of array of Boolean? Einfach das angeklickte Feld auf den Wert von Zeichnen setzen.
Diese Variable kann der User per Klick auf einen Stift/Radierer entsprechend setzen. So hab ich mir das vorgestellt...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Mo 16.04.07 20:45 
Das läuft auch beim Linienziehen im Prinzip genauso ab wie du gesagt hast.
Das Problem ist das MouseMove sehr unzuverlässig ausgelöst wird.

Zitat:

Wenn man das Diagrammfenster öffnet, wird es ganz am linken Rand angezeigt (nur zur Hälfte), wäre in der Bildschirmmitte besser


Das ist ein Feature, bei dem ich aber einen kleine Fehler gemacht habe, wie mir jetzt auch auffällt :lol: . Eigentlich war es gewollt, dass das Diagrammfenster zuschaltbar ist und das Spielfeld nicht verdeckt. Ich arbeite auf einem Laptop und hab daher die Auflösung 1280x1024. Aus irgendwelchen Gründen dachte ich man hätte normalerweise eine grössere Auflösung. Aber die meisten haben wohl 1280px als Standardbreite. Muss ich ändern, danke.

Zitat:

Außerdem wäre es toll, wenn bei einem "Neuanfang" auf der linken Seite des Fensters nicht das ganze Diagramm gelöscht würde.


Nun ja, aber bei einem Neuanfang haben die Daten aus dem alten Diagramm ja eigentlich nichts mehr mit momentanem Ablauf zu tun, oder wie meinst du das? :gruebel:
Silas
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Di 17.04.07 14:13 
Mit "Neuanfang" mein ich, dass das Diagramm am ende des Fensters "angekommen" ist (also das Fenster voll ist), der Fensterinhalt gelöscht wird und mit dem Diagramm wieder links angefangen wird. Da wäre es besser, wenn das "alte" Diagramm immer nur da überschrieben werden würde, wo neu gezeichnet wird.

_________________
Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat ;-)
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 17.04.07 18:43 
Okay, jetzt hab ichs ;)

Stimmt, das wäre allerdings schöner. Werd ich noch versuchen einzubauen!