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*