Autor Beitrag
Chrischuh
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: So 13.06.10 15:38 
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: de.wikipedia.org/wik...ays_Spiel_des_Lebens
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Chrischuh am Di 15.06.10 19:22, insgesamt 11-mal bearbeitet

Für diesen Beitrag haben gedankt: Delphi-Laie
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 13.06.10 17:02 
Oh sorry :oops: Das Game kenn ich noch nicht mal, spiele ich kaum irgend welche Spiele!
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: So 13.06.10 17:10 
Ein richtiges Spiel ist es eig nicht :D

de.wikipedia.org/wik...ays_Spiel_des_Lebens

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

Chrischuh
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: So 13.06.10 17:19 
Was ist denn die Gleiter-Kanone?

Screenshot wäre nicht schlecht. :wink:
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: So 13.06.10 17:51 
Habe noch ein Paar geschwindigkeitsbremsen entfernt. Die Gleiterkanone schießt wieder flüssig^^
Chrischuh Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 124
Erhaltene Danke: 1

Win 7
Turbo Delphi
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: 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").