hi luckie!
ich bin jetzt mal ganz radikal:
mach das alles in EINE prozedur!
alles war du brauchst ist eine weitere information: der ZULETZT gesetzte spielstein!
dnhand diesen spielsteins kannst du dann prüfen ob
- auf einer seite 3 gleiche
- auf einer seite 2 gleiche auf der anderen seite 1 gleicher
("seite" stellvertretend für links/rechts/oben/unten/diagonal
--> fertig!
Delphi-Quellcode:
// Z: Zeile, S: Spalte
function Ist(Spalte, Zeile, Wer: Integer): TRUE;
begin
// prüfen ob es das Feld gibt und ob es "Wer" (das gleiche) ist
end;
procedure NeuerSpielsteinGesetzt(S, Z, W);
begin
...
if (Ist(S-3,Z,W) and Ist(S-2,Z,W) and Ist(S-1,Z,W)) or // nach links
(Ist(S+3,Z,W) and Ist(S+2,Z,W) and Ist(S+1,Z,W)) or // nach rechts
... // nach oben/unten/linksoben/rechtsoben...
(Ist(S-2,Z,W) and Ist(S-1,Z,W) and Ist(S+1,Z,W)) or // 2 links 1 rechts
... // 2 rechts 1 links, 2 oben 1 unten usw
then
ShowMessage('Gewonnen mit freundlicher Grüßen von Stefans zugroß geratener If Abfrage ;-)');
end;
ich hoff ihr versteht wie ich das mein