AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Conway's Game Of Life (GoL); auch noch von mir
Thema durchsuchen
Ansicht
Themen-Optionen

Conway's Game Of Life (GoL); auch noch von mir

Ein Thema von Lumpiluk · begonnen am 21. Sep 2009 · letzter Beitrag vom 25. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Lumpiluk
Lumpiluk
Registriert seit: 25. Dez 2008
Hi zusammen!
Ich habe (wie viele andere ja auch) irgendwann mal ein Game Of Life programmiert. In letzter Zeit habe ich es nun noch um einiges verbessert und erweitert und vor Allem übersichtlicher gestaltet

Den Source habe ich inzwischen auch beigelegt. Vielleicht könnt ihr ja trotz der mangelnden Überschaubarkeit etwas damit anfangen

Ich freue mich über Kritik und Verbesserungsvorschläge!
Ich bin mir nicht sicher, ob ich das hier posten darf, aber hier ist schonmal eine Vorschau als Video. Falls es doch nicht erlaubt sein sollte, sagt mir bescheid (in den Regeln habe ich dazu jetzt nichts gefunden).

Hier ein paar Features:
- variable Feldgröße mit Torusfunktion (was z.B. rechts rausgeht kommt links wieder rein)
- anpassbare Geschwindigkeit
- beliebiges setzen von Figuren aus einer Auswahl von ca. 370 Stück (fast alle aus diesem Lexicon wurden eingebaut)
- Farbe anpassbar (mit 'Rainbow'-Funktion: automatischer Farbwechsel)
- Zufallsfüllung der Fläche
- Generationenzähler
- Möglichkeit, eigene Figuren zu speichern
- Vollbildmodus und Hauptfenstertransparenz (aus irgendeinem Grund funktioniert die Transparenz nicht ganz mit den Optionen: danach sind sie immer hinter der Hauptform...)
- Zoom


//edit:
Hier ist die neue Version! Danke für die Hinweise 8)
Falls euch noch was stört: sagt Bescheid
Angehängte Dateien
Dateityp: exe 7z-sfx_ls_gameoflife_v2.8__setup_source_137.exe (1,47 MB, 29x aufgerufen)
 
Delphi-Laie

 
Delphi 10.1 Berlin Starter
 
#2
  Alt 21. Sep 2009, 22:08
Zitat von Lumpiluk:
Ich freue mich auf Kritik und Verbesserungsvorschläge!
Aber gern - mir sind sofort zwei Dinge aufgefallen:

1. Die Anzahl der Zellen ist unabhängig von den Fensterabmessungen. Ich erinnere mich dunkel, daß ich mal ein solches Programm hatte (sicher irgendwo gebrannt, doch dafür werde ich mich nicht durch den CD-Stapel kämpfen, sieh mir das bitte nach), das bei vergrößertem Zoom, am besten maximiert, mehr Zellen zur Verfügung stellt. Das bietet Dein Programm leider nicht.

2. Aaaaaber: Was links am Rand verschwindet, taucht rechts wieder auf, analog alle anderen Richtungen. Damit wird Dein Spielfeld letztlich ein Baustein einer periodischen Parkettierung einer unendlichen Ebene. Mit diesem Trick eine unendliche Fläche (fast) zu simulieren, so etwas erlebte ich bei solchen zellulären Automaten noch nicht.

Viel Freude beim weiteren Feinschliff!
  Mit Zitat antworten Zitat
Medium

 
Delphi 2007 Enterprise
 
#3
  Alt 22. Sep 2009, 00:16
Zitat von Delphi-Laie:
unendlichen Ebene.
Um genau zu sein ist dies ein 2-Torus, und keineswegs unendlich. Das aber wirklich nur als Spitzfindigkeit am Rande
  Mit Zitat antworten Zitat
Delphi-Laie

 
Delphi 10.1 Berlin Starter
 
#4
  Alt 22. Sep 2009, 10:19
Zitat von Medium:
Zitat von Delphi-Laie:
unendlichen Ebene.
Um genau zu sein ist dies ein 2-Torus, und keineswegs unendlich. Das aber wirklich nur als Spitzfindigkeit am Rande
Yo, der Punkt geht an Dich. Ich verwechselte unendlich und schrankenlos (hoffentlich irre ich mich nicht schon wieder). Eine Ebene oben und unten sowie links und rechts zu vereinen, gibt einen Torus. Also, Conway Spiel auf der Fläche eine Torus', dargestellt in der Ebene.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#5
  Alt 22. Sep 2009, 10:56
Was ich unhandlich finde ist, daß immer nur beim Loslassen der Maustaste ein Feld gesetzt wird.
> ich fännde es prakischer, wenn dieses beim Drücken und auch beim Verschieben pasiert.
(OnMouseDown und OnMouseMove)


Da gibt es doch rechts und unten soeine Begrenzungslinie ... da hätte ich erwartet, daß die Figuren/Felder nur innerhalb (links über) des "Spielfeldes" bleiben und nicht auch auf der anderen Seite (außerhalb).


Beim Einfügen von Figuten wäre es schön, wenn vorm Einfügen man die Figur schon sehen kann, also z.B. wie so ein Schatten im Spielfeld, da wo dann die Felder eingefügt werden, wenn man klickt.

Die [O.K.] Buttons in Figure Settings und Speed Options würde ich Close nennen, da die Einstellungen ja sofort übernommen werden und damit nur das Festerchen geschlossen wird.

Und nun noch das Wichtiges:
Mach bitte den globalen Tastaturhook raus!
Hab mich schon gewundert, was hier los ist und warum soeine Titelleiste ständig über's Bild husch, wärend ich diesen Beitrag hier verfaßte und deine Anwendung im Hintergrund lief,
bis ich merkte, daß sie auf die Tastatureingaben im FF regaierte.


PS: wozu ist eigentlich das Setup?
(hab die 7zip (exe) direkt entpackt und nötig scheint diese ja nicht zu sein

[add]
ach ja, diese kleinen Optionsdialog könnten doch gleich neben dem Spielfeld positioniert sein, damit man sie nicht erst noch verschieben muß.


Ansonsten isses ja ganz nett
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#6
  Alt 22. Sep 2009, 11:02
Zitat von himitsu:
Mach bitte den globalen Tastaturhook raus!
Das ist doch nur der zugehörige Keylogger. Wenn er den entfernt, verliert das Programm doch jeglichen Sinn und Zweck.

Jetzt mal im Ernst, wozu braucht man bei einer normalen Anwendung einen globalen Tastaturhook?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

 
Delphi 11 Alexandria
 
#7
  Alt 22. Sep 2009, 11:46
Sehr schönes Programm, aber:
Der Generationszähler wird genau wann zurück gesetzt?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Lumpiluk
Lumpiluk
 
#8
  Alt 22. Sep 2009, 13:58
So, danke erstmal an alle!

Zitat von Sherlock:
Sehr schönes Programm, aber:
- Der Generationszähler wird genau wann zurück gesetzt?
Zurückgesetzt wird der Zähler normalerweise beim setzen einer neuen Figur. Dafür werde ich aber auch noch einen neuen Button im Menü einbauen.

- Das mit der Positionierung der Menüs dürfte eigentlich kein Problem sein.
- Naja, das Setup... Ich weiß, dass es Leute gibt, die sich mit PCs sehr schwer tun (mein Bruder zum Beispiel) und wenn die es immerhin geschafft hätten, die 7zip zu entpacken, wüssten die wohl immernoch nicht, wie sie das Programm starten sollen.
- Den globalen Tastaturhook hab ich drin, weil ich zuerst ein TMainMenu drin hatte und dann auf eine TToolBar umgestiegen bin. Dafür musste ich beim Menü automerge einstellen und dann waren plötzlich die Shortcuts nicht mehr da und ich bin auf getasynckeystate umgestiegen... Wie bekomme ich das besser hin?
- Den Torus kann man ausschalten
- Es stehen sehr wohl mehr Zellen zur Verfügung (Options -> Size of Workspace...). Allerdings werde ich wohl noch die TPaintBox in eine TScrollBox packen und eine Zoomfunktion einbauen.
- Und bei den Buttons gebe ich dir auch Recht

So, wenn ich dann wieder zu Hause bin werde ich mich mal drum kümmern.
  Mit Zitat antworten Zitat
Benutzerbild von Lumpiluk
Lumpiluk
 
#9
  Alt 22. Sep 2009, 20:23
So, die neue Version ist fertig. Viel Spaß damit

Achja, fast vergessen: Wenn ich beim zoomen das Feld zu groß mache, kommt ziemlich bald die Fehlermeldung "Für diesen Befehl ist nicht genügend Speicher verfügbar!" Woran liegt das? Ich vermute, dass es irgendwie mit der ScrollBox, dem Image oder der PaintBox zusammenhängt, von denen letztere ja immer größer werden. Das Image nicht mitwachsen zu lassen hat aber nicht viel gebracht und im Taskmanager wird auch garnicht so viel verbrauchter Speicher angezeigt (Firefox hat bei mir viel, viel mehr )...
  Mit Zitat antworten Zitat
HalloDu

 
Delphi 2009 Professional
 
#10
  Alt 22. Sep 2009, 20:36
Ich gehe mal davon aus, dass du die Werte in einem dynamischen Array speicherst. Wenn du nun die Größe des Arrays mit SetLength bestimmst, wird dafür Speicher reserviert. Wenn nun der Array zu groß wird, muss nun zu viel Speicher reserviert werden, was zu deiner Fehlermeldung führt.
Frederic H.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz