Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#27

Re: Sieger-Prüfung "Vier gewinnt"

  Alt 29. Jun 2004, 02:21
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
  Mit Zitat antworten Zitat