Delphi-Quellcode:
function CheckDiagonal: Boolean;
var
i, k, c, r: Integer;
begin
c := -2;
for i := 0 to 6 do
begin
cnt := 0;
c := i-2;
r := 0;
for k := 0 to 6 do
begin
if (i in [0..COLUMNS-1]) and (k in [0..ROWS-1]) then
begin
if Field[c, r] <> 1 then cnt := 0
else inc(cnt);
if cnt = 4 then
begin
result := true;
exit;
end; // if cnt=4
end; // if (i in ...
inc(c);
inc(r);
end; // for k...
end; // for i...
result := false;
end; // CheckDiagonal
völlig ungetestet!
\\edit: Die beiden 6en in den Schleifen kommen so zu Stande: 6 ist die maximale Länge einer Diagonalen in einem 7x6-Feld, und zufällig sind auch 6 Diagonalen lang genug um 4 Steine aufzunehmen.
\\edit2: diese Funktion ist aber erst für die Diagonalen von links oben nach rechts unten!!! Für die anderen müsste man an den Zählern drehen...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel