![]() |
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. |
Re: Spiel des Lebens
Gut Dir mal den Wikipedialink den ich gepostet habe an, da steht alles drin.
|
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:
--> Dies ist die Procedure SpielfeldZeichnen(drawGame)
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; 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. |
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