Ich glaube, es geht ihm darum, festzustellen, wer gewonnen hat.
Zitat:
Dummerweise wird die Abfrage des Spielbrettes bei fast allen Zügen benötigt, nicht nur beim allerletzten Stein.
So verstehe ich den Satz zumindest.
Wenns das ist, was du suchst, ist das ja nicht schwer. Mir fällt im Augenblick nur die hardcode-Variante ein. Man hat ja ein 3x3-Spielfeld. D.h. mann muss wie folgt prüfen:
Als grundlage wähle ich jetzt einfach mal das Spielfeld als Array of Integer.
Delphi-Quellcode:
var
Spielfeld: Array[1..3, 1..3] of Integer; //nur ein Beispiel: Ohne Spielstein 0; Spieler 1 gesetzt: 1; Spieler 2 gesetzt: 2
//Durchsucht Spielfeld und gibt den Spieler zurück; hat keiner gewonnen: 0
function Gewonnen: integer;
var
i: integer;
begin
Result := 0;
//Alle Zeilen auf eine Reihe durchforsten:
for i := 1 to 3 do
begin
if (Spielfeld[i, 1] = Spielfeld[i, 2]) and (Spielfeld[i, 2] = Spielfeld[i, 3]) then
begin
Result = Spielfeld[i, 1];
Exit;
end;
end;
//das gleiche mit den Spalten machen
//...
//und anschließend noch die beiden Diagonalen testen
//...
end;