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;