Entwickler-Ecke

Freeware Projekte - Ein weiteres Game of Life


Chrischuh - So 13.06.10 15:38
Titel: Ein weiteres Game of Life
Moin,

hier ein kleiner Game of Life Clon.

Features:
Start/Stop
Laden/Speichern
Einstellbare Map größe. (Einziges Limit die Pc leistung)
Gitter ein/aus
Zoomen
Zellen-Zählen
einzelne Generation

Als Beispiel ist die Gleiter-Kanone dabei.

Viel Spaß^^

Chrischuh

Edit: Für alle die Game of Life nicht kennen: http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens


ALF - So 13.06.10 15:51

Darf ich fragen, was Dein Programm nach dem Starten und im Stopmodus soviel Prozessorleistung zieht!
35% bei 3kernel ist doch schon deftig :gruebel:
Eigentlich dürfte ja zu diesem Zeitpunkt nichts mehr passieren?
Das gleiche ist auch wenn nichts mehr passiert, ich nicht stoppe läuft der Zähler weiter!
Ansonsten farblich Effekte währen auch schön.
Gruss Alf


Chrischuh - So 13.06.10 16:02

Hast recht, das ist komisch, warscheinlich weil onIdle die ganze Zeit aktiviert wird und dann doch nix macht. Kann man das einstellen das onidle nicht aktiviert wird?

Farben vllt später.

Danke, werd mich drum kümmern.


//Edit:
Jetzt ist wieder alles mit dem Timer, also nurnoch Cpu Auslastung wenns wirklich nötig ist.


ALF - So 13.06.10 16:27

Ich befürchte mehr, das Du in Deinem Prog, irgend eine Schleife drin hast(zum berechen z.B. oder ähnliches) die schon läuft.
Denn beim Starten des Spiels gibt es ja kaum Leistungveränderung!
Wenn auf der Map nichts mehr passiert zählt der Zähler Generationen trotzdem weiter!?
Hast also noch ein bischen was zu tun :wink:

edit: version 0.4 na chick, kaum noch last :wink:
Gruss ALf


Chrischuh - So 13.06.10 16:39

So, nun stoppt er, sobald es zwischen 2 Generation keine änderung gab.
Ich hoffe nun ist das schleifenproblem gelöst^^


ALF - So 13.06.10 16:47

leider stoppt es nicht!
mach mal ne map grösse=100 und setze Zellen als Kreise Quadrate und starte!
Zum schluss flackern irgenwelche Punkte, das Prog stop nicht und der Zähler läuft weiter!

Gruss Alf


Chrischuh - So 13.06.10 16:55

Aber gehört das nicht so bei GameofLife?
Wenn da was Blink und du nichtmehr weitergucken möchst, dann drück auf Stop :)
Weil das Blinken wird ja immernoch berechnet.


ALF - So 13.06.10 17:02

Oh sorry :oops: Das Game kenn ich noch nicht mal, spiele ich kaum irgend welche Spiele!
Gruss Alf


Chrischuh - So 13.06.10 17:10

Ein richtiges Spiel ist es eig nicht :D

http://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens

Danke für deine Vorschläge, hast sehr geholfen :)

Chrischuh


Delphi-Laie - So 13.06.10 17:16

Wird „neue Map“ (warum ein Anglizismus, der zudem nicht einmal weiblich ist!?) angeklickt, bevor man eine (nichtnegative integre) Größe eingab (also leeres Editfeld), gibt es eine Fehlermeldung. Das gleiche gilt, wenn man eine nichtintegre oder negative integre Größe zuvor eingab. Diese Fehleingabe könnte abgefangen werden.

Ansonsten: Positiver erster Eindruck!


Jakob_Ullmann - So 13.06.10 17:19

Was ist denn die Gleiter-Kanone?

Screenshot wäre nicht schlecht. :wink:


Delphi-Laie - So 13.06.10 17:29

user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Was ist denn die Gleiter-Kanone?


Eine Zellansammlung, die periodisch sog. Gleiter produziert und verschickt. Gleiter sind sich fortgewegende Zellansammlungen.


Chrischuh - So 13.06.10 17:35

Neue Map ist jetzt Neue Welt :D

Der Fehler wird nun abgefangen.

Und das Design ist nun etwas bunter.

Edit: Fehlermeldung kommt doch noch bei negativen Zahlen, ist gleich auch weg.


ALF - So 13.06.10 17:38

user profile iconChrischuh hat folgendes geschrieben Zum zitierten Posting springen:
Weil das Blinken wird ja immernoch berechnet.

Habs verstanden 8) Könnte man auch als Zellinzucht verstehen! spass
Mit den Farben meinte ich die neuen Generationen die entstehen!?
ansonsten natürlich guter Ansatz :!:

Gruss Alf


Chrischuh - So 13.06.10 17:51

Habe noch ein Paar geschwindigkeitsbremsen entfernt. Die Gleiterkanone schießt wieder flüssig^^


Chrischuh - So 13.06.10 22:13

Jetzt kann man auch mal andere Regeln verwenden, einfach die Regeler verschieben.

Wenn man zum Beipiel bei allen Geraden Sterben und bei allen ungeraden Leben einstellt, und dann folgende strucktur Zeichnet:

X X
XXX
X X

dann enstehen auch coole Muster^^


Flamefire - So 13.06.10 23:10

Ganz gut. Aber warum gibt es verschiedene Farben? Macht bisher keinen Sinn außer Augenkrebs ^^
Was ich noch empfehlen würde: Optimiere es weiter. z.b. dein genanntes H laggt bei 100*100 auf nem C2D 3,5Ghz

Also:
Prozedur optimierung
Multithreading (Du hast ein quadratisches Feld, jede 2er Potenz als Anzahl der Threads macht sich gut. Optimal ist die Anzahl der Prozessoren)


Hugo343 - Mo 14.06.10 10:29

Also ich finde das Spiel janz jut, aber die Farben sind schon ziemlich schrill... Wer wollte da verschiedene Farben für die Zellen, das ist doch nur umso verwirrender. Trotzdem cooles Projekt, bin auch schon am bauen eines eigenen vielleicht kriege ich ja noch ein genauso gutes hin. :wink:


Delphi-Laie - Mo 14.06.10 12:21

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Du hast ein quadratisches Feld, jede 2er Potenz als Anzahl der Threads macht sich gut. Optimal ist die Anzahl der Prozessoren)


Das bedeutet also, daß das Betriebsprogramm die Threads auf die Prozessoren bzw. Prozessorkerne verteilen kann?

Bei Prozessen war mir das klar, bei Threads (die ja dem gleichen Prozeß angehören) hingegen unbekannt. Für die Suche oder einen neuen Diskussionsstart war es mir aber wiederum nicht wichtig genug.


Flamefire - Mo 14.06.10 15:23

Jeder Prozess hat min. 1 Thread. Jeder Thread ist (mehr oder weniger) eigenständig und wird vom Betriebssystem (-SYSTEM!) auf die Prozessoren (bzw Kerne) verteilt. Da ist es egal, zu welchem Prozess der gehört. Einem Prozess kann keine CPU-Zeit zugeweisen werden, nur einem Thread(="Arbeitseinheit").


Chrischuh - Di 15.06.10 19:25

ich glaub das mit diesen threads lass ich weg^^ zu komplex:D

So die Farben sind jetzt wieder "Normal"

und es wird mit einem leeren 30*30 Feld gestartet.

Jetzt muss ich nurnoch Hugo343's Geschwindigkeit toppen, iwie...

Chrischuh


Flamefire - Di 15.06.10 19:47

Mach beides. Also Threads und bessere Datenstrukturen. Hilft sehr beim Lernen.
Und gerade das ist ein dankbares Bsp für Threads. Auf nem DualCore ein Speedup von ~2