Einzelnen Beitrag anzeigen

phppeter

Registriert seit: 8. Sep 2005
2 Beiträge
 
#1

Problem mit Vier Gewinnt Gewinnabfrage

  Alt 29. Mär 2006, 16:53
Hej Leute,

ich habe Vier Gewinnt programmiert, bin fast fertig, aber habe ein Problem bei der Gewinnfunktion! Waagerechte und senkrechte Reihen werden erkannt, aber keine diagonalen. Für die Diagonalen habe ich extra eine Prozedur geschrieben, schaut euch die bitte mal und schreibt wo der Fehler liegt.
Delphi-Quellcode:
function Tform1.gewonnendiagonal(xwert, ywert, richtung: integer): boolean;
var
  Count, aktufarb, xcase, ycase: integer;
begin

 
  if richtung = 1 then //unten links nach oben rechts
  begin
    Count := 1;
    xcase := xwert + 1;
    ycase := ywert + 1;
    aktufarb := spielfeld[xcase, ycase];
    while (aktufarb = anderreihe) do
    begin
      Inc(Count);
      Inc(xcase);
      Inc(ycase);
      aktufarb := spielfeld[xcase, ycase];
    end;
    xcase := xwert - 1;
    ycase := ywert - 1;
    while (aktufarb = anderreihe) do
    begin
      Inc(Count);
      Dec(xcase);
      Dec(ycase);
      aktufarb := spielfeld[xcase, ycase];
    end;
  end;

 
  if richtung = 2 then //unten rechts nach oben links
  begin
    Count := 1;
    xcase := xwert + 1;
    ycase := ywert - 1;
    aktufarb := spielfeld[xcase, ycase];
    while (aktufarb = anderreihe) do
    begin
      Inc(Count);
      Inc(xcase);
      Dec(ycase);
      aktufarb := spielfeld[xcase, ycase];
    end;
    xcase := xwert - 1;
    ycase := ywert + 1;
    while (aktufarb = anderreihe) do
    begin
      Inc(Count);
      Dec(xcase);
      Inc(ycase);
      aktufarb := spielfeld[xcase, ycase];
    end;
  end;
  if (Count >= 4) then
    Result := True;

 
end;
Ich bedanke mich!!

Übrigens: Wenn das alles totaler Mist ist, bin ich für neue Ansätze für eine solche Gewinnfunktion dankbar ))

Gruß
DelphiDieter!
  Mit Zitat antworten Zitat