Thema: Delphi Minesweeper

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#123

AW: Minesweeper

  Alt 27. Mär 2015, 09:05
eben so einfach ist das mit den einfachen Regeln, die sind eben einfach und wohl deshalb so kompliziert
Ja ist es denn so schwer zu verstehen?

Nimm Deine Regel und Du siehst, dass eben aus diesem Grund keine Überprüfung der umliegenden Felder eines Zahlfeldes NOTWENDIG ist.

Und daher werden die umliegenden Felder eines ZAHLFELDES nach dem Aufdecken eben NICHT mehr geprüft.
Aber genau das besagt doch die Regel und genau deshalb definiert man die Regel so, weil es dadurch einfach in der Beschreibung und in der Anwendung ist.
Delphi-Quellcode:
procedure TSpiel.DeckMichAuf( Feld : TFeld );
var
  LNachbar : TFeld;
begin
  if Feld.Aufgedeckt then
    Exit;

  Feld.Aufgedeckt := True;
  
  if Feld.HatMine then
    Exit;

  if Feld.AnzahlNachbarMinen = 0 then
  begin
    for LNachbar in NachbarnVon( Feld ) do
      DeckMichAuf( LNachbar );
  end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat