Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Spiel des Lebens (https://www.delphipraxis.net/91603-spiel-des-lebens.html)

franz23 12. Mai 2007 16:04

Re: Spiel des Lebens
 
Hi,
kann mir jemand helfen, muss in delphi Spiel des Lebens programmiren, aber irgendwie komm ich nicht richtig klar

wie kann ich z.B. die nächste generation berechnen ?

Berechnet die nächste Generation des Spielfeldes.
----------------------------------------------------------------------
globale Zugriffe :
curGen (schreibend): Die interne Darstellung der aktuellen Generation
-------------------------------------------------------------------------}
procedure nextGen;
begin

end;

end.

loetmann 12. Mai 2007 20:40

Re: Spiel des Lebens
 
Gut Dir mal den Wikipedialink den ich gepostet habe an, da steht alles drin.

Stillmatic 14. Mai 2007 14:54

Re: Spiel des Lebens
 
Hi!!

Also mein Programm läuft so weit gut!!
Nur hab ich ein riesiges Problem mit der veränderbarkeit einiger Konstanten!
Ich erkläre einmal.............

Code:
procedure TfrmMain.drawGame;
var i,j  : integer;
    Status: boolean;
begin
{Spielfeld mit # Füllen}
for i := low(UTypes.TGameWidth) to high(UTypes.TGameWidth) do
 Begin
  for j := low(UTypes.TGameHeight) to high(UTypes.TGameHeight) do
   Begin
    Status := UGameLogic.getCellState(i,j);
     If Status = False then
      Gamefield.Cells[i-1,j-1] := '#' else //wenn besetz # setzen
      Gamefield.Cells[i-1,j-1] := '';    //ansonsten leer füllen
   end;
 end;
end;
--> Dies ist die Procedure SpielfeldZeichnen(drawGame)
Sie durchläuft das Komplette Array Feld und überprüft in der Function getCellState ob der Punkt der durch die beiden geschachtelten For schleifen errechnet wird 'Frei' oder 'Belegt' ist und je nach Ergebniss wird ein '#' gesetzt oder das Feld bleibt leer!

Nun ist mein Problem.....

Wenn ich die deklarierten Typen TGameHeight,TGameWeight auf
(cMaxWidth,cMaxHeight := 5)
TGameWidth = -1..cMaxWidth-2;
TGameHeight = -1..CMaxHeight-2;

ändere dann läuft das Programm natürlich nicht mehr da er kein Feld

Gamefield.Cells[-2,-2] kennt!!

Hat einer von euch ne Idee wie man diesen Fehler umgehen könnte, sodass er auf jeden Fall egal bei welchem WerteBereich von TGameWidth,TGameHeight bei 0 anfängt??

Bei Plus Werten Funktioniert das Programm natürlich einwandtfrei!!

Gamefield.Cells[i-1,j-1] // jeweils -1 da das Stringgrid ja bei 0 anfängt!!

*THX*


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz