Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: If-Verschachtelung in VierGewinnt - komisches Ergebnis

  Alt 29. Mai 2006, 18:26
Wenn ein Spieler einen Stein wirft, muss man 7 verschiedene Richtungen
überprüfen. Die 8. Richtung wird nicht benötigt, da nach oben kein Stein liegen kann.
Also würde ich ein Array mit 8 Einträgen machen und für 7 Richtungen die Anzahl der
zusammenhängenen Steine zählen.
Immer zwei Richtungen gehören zusammen (nach links<=>nach rechts, nach linksoben<=>rechtsunten).
Am Ende bleiben also nur noch 4 Richtungen übrig.
Delphi-Quellcode:
TRichtung =(up, upright, right, downright, down, downleft, left, upleft); // die 8 Richtungen;
var
   anzahl[up..upleft]: integer;

// die gewinnbedingungen
// hier gewinnt die 3, da der Stein bei GZeile, Gspalte noch dazugerechnet werden muss
if (anzahl[up]+anzahl[down] >= 3) or
   (anzahl[upright]+anzahl[downleft] >= 3) or
   ....
   gewonnen := True;
Andreas
  Mit Zitat antworten Zitat