Thema: Delphi Spiel des Lebens

Einzelnen Beitrag anzeigen

Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#23

Re: Spiel des Lebens

  Alt 14. Mai 2007, 14:54
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*
  Mit Zitat antworten Zitat