Einzelnen Beitrag anzeigen

Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Problem mit Vier Gewinnt Gewinnabfrage

  Alt 29. Mär 2006, 17:11
Also, ich wüsste jetzt nicht wo man in deiner Funktion einen Rückgabeparameter findet der beinhaltet ob er nun gewonnen hat oder nicht, du überprüfst immer nur das Feld, machst dann aber nix damit. Ich versuche mal deinen Code umzuschreiben.


Flare

//Edit: habs gerade gefunden dass du doch mitzählst...egal, ich gucks mir trotzdem nochmal genauer an

Ich habe es mal umgeschrieben, es ist ungetestet, da ich keine Lust hatte dazu noch den ganzen Rest zu programmieren
und ich hoffe ich habe es nicht nur vereinfacht oder verschlimmbessert...

Delphi-Quellcode:
function Tform1.gewonnendiagonal(xwert, ywert, richtung: integer): boolean;
var
  Count: integer;
begin
  Result := false;
  Count := 1;
  if richtung = 1 then //unten links nach oben rechts
  begin
    while spielfeld[xwert-1, ywert-1] = anderreihe do //ans letzte Steinchen setzen
    begin
      Dec(xwert);
      Dec(ywert);
    end;
    while spielfeld[xwert, ywert] = anderreihe do //und dann in nur eine Richtung rechnen lassen
    begin
      Inc(Count);
      Inc(xwert);
      Inc(ywert);
    end;
  end;

  if richtung = 2 then //unten links nach oben links
  begin
    while spielfeld[xwert-1, ywert+1] = anderreihe do //ans letzte Steinchen setzen
    begin
      Dec(xwert);
      Inc(ywert);
    end;
    while spielfeld[xwert, ywert] = anderreihe do //und dann in nur eine Richtung rechnen lassen
    begin
      Inc(Count);
      Inc(xwert);
      Dec(ywert);
    end;
  end;
  if (Count >= 4) then Result := True;
end;
Willy Scheibel
  Mit Zitat antworten Zitat