Entwickler-Ecke

Freeware Projekte - Game of Life


Karlson - So 15.04.07 18:28
Titel: Game of Life
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 [http://de.wikipedia.org/wiki/Game_of_life] den Wikipediaeintrag lesen.

Meine Umsetzung bietet:



Ich hoffe es funktioniert alles.

Danke fürs ansehen!

Download ist eine .exe-Datei mit 672 kb.


Karlson - Mo 16.04.07 19:27

Will niemand mal was dazu sagen? :(


JayEff - 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 - 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


Karlson - 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 - 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 - 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 - 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.


Karlson - Di 17.04.07 18:43

Okay, jetzt hab ichs ;)

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