AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Minesweeper

Ein Thema von saii · begonnen am 21. Mär 2015 · letzter Beitrag vom 29. Mär 2015
Antwort Antwort
Seite 13 von 14   « Erste     3111213 14      
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Minesweeper

  Alt 27. Mär 2015, 08:49
"Angrenzende Felder des leeren Feldes die eine Zahl haben ebenfalls aufdecken." Hört sich irgendwie anders an oder blick ich's jetzt auch nicht mehr?
Ja hört sich anders an, ist aber auch falsch, bzw. nicht komplett.

Es ist wurst-schnuppe-pieps-egal, ob die angrenzenden Felder eine Zahl haben oder nicht, die werden aufgedeckt und für jedes dieser Felder die gleiche Regel wieder angewendet.
Ist das angrenzende Feld zu einem Leerfeld eine Zahl, dann wird das Zahlfeld aufgedeckt, aber die angrenzenden Felder des Zahlfeldes NICHT mehr überprüft.

Siehe QuellCode in #75.
Kinder, Kinder ... Kontext lesen

Die Regel (ich wiederhole diese gerne noch einmal aus dem Beitrag #89) ist so simpel, dass diese anscheinend zu schwer ist:
Zitat:
Wenn ein Feld aufgedeckt wird, dass keine Mine im Nachbarfeld hat, dann werden auch alle Nachbarfelder aufgedeckt.
Und bei dieser Regel (das ist das Dingen da in dem Zitat-Kasten direkt hier drüber) ist es
Zitat:
... wurst-schnuppe-pieps-egal, ob die angrenzenden Felder eine Zahl haben oder nicht, die werden aufgedeckt und für jedes dieser Felder die gleiche Regel wieder angewendet.
Und wenn dann das Nachbarfeld aufgedeckt wird und dieses Nachbarfeld hat eine Mine im Nachbarfeld, was sagt dann die Regel? ... eben so einfach ist das mit den einfachen Regeln, die sind eben einfach und wohl deshalb so kompliziert
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
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#122

AW: Minesweeper

  Alt 27. Mär 2015, 08:59
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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
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
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#124

AW: Minesweeper

  Alt 27. Mär 2015, 09:33
Reden wir hier aneinander vorbei?

[
Delphi-Quellcode:
  if Feld.AnzahlNachbarMinen = 0 then
  begin
    for LNachbar in NachbarnVon( Feld ) do
      DeckMichAuf( LNachbar );
  end;
Du machst doch genau das was ich geschrieben habe.

Wenn Dein Feld in der if-Bedingung ein Zahlfeld ist, dann werden die umliegenden Felder nicht geprüft.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#125

AW: Minesweeper

  Alt 27. Mär 2015, 09:37
Zitat:
Wenn ein Feld aufgedeckt wird, dass keine Mine im Nachbarfeld hat, dann werden auch alle Nachbarfelder aufgedeckt.
Nein, auch wenn es nicht falsch ist.

Eine Leeres Feld hat keine Mine im Nachbarfeld. Nur eine Zahl hat eine Mine im Nachbarfeld. Womit das gilt was ich in #119 geschrieben habe. Alle Nachbarn einen leeren Feldes werden werden aufgedeckt. Bei einer Zahl werden keine Nachbarn aufgedeckt. Das mit der Fahne ist etwas anderes.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Minesweeper

  Alt 27. Mär 2015, 10:51
Reden wir hier aneinander vorbei?

[
Delphi-Quellcode:
  if Feld.AnzahlNachbarMinen = 0 then
  begin
    for LNachbar in NachbarnVon( Feld ) do
      DeckMichAuf( LNachbar );
  end;
Du machst doch genau das was ich geschrieben habe.

Wenn Dein Feld in der if-Bedingung ein Zahlfeld ist, dann werden die umliegenden Felder nicht geprüft.
Und das was ich da mache ist die 1:1 Übersetzung meiner Regel ... da wo du sagst mit der stimmt etwas nicht
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
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#127

AW: Minesweeper

  Alt 27. Mär 2015, 11:55
Und das was ich da mache ist die 1:1 Übersetzung meiner Regel ... da wo du sagst mit der stimmt etwas nicht
Ich hab ja nicht die Regel angezweifelt, sondern mich auf dieses bezogen:

Es ist wurst-schnuppe-pieps-egal, ob die angrenzenden Felder eine Zahl haben oder nicht, die werden aufgedeckt und für jedes dieser Felder die gleiche Regel wieder angewendet.
Ich hatte es so gelesen, dass auch wenn es ein Zahlenfeld ist, Du nicht nur die Regel auf dieses Zahlenfeld anwenden möchtest, sondern wiederum ringsherum alles prüfst und angrenzenden Zahlenfelder aufdecken möchtest.

Und dieser Schritt wäre falsch aber Du machst ihn ja auch nicht.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Minesweeper

  Alt 27. Mär 2015, 13:10
Und das was ich da mache ist die 1:1 Übersetzung meiner Regel ... da wo du sagst mit der stimmt etwas nicht
Ich hab ja nicht die Regel angezweifelt, sondern mich auf dieses bezogen:

Es ist wurst-schnuppe-pieps-egal, ob die angrenzenden Felder eine Zahl haben oder nicht, die werden aufgedeckt und für jedes dieser Felder die gleiche Regel wieder angewendet.
Ich hatte es so gelesen, dass auch wenn es ein Zahlenfeld ist, Du nicht nur die Regel auf dieses Zahlenfeld anwenden möchtest, sondern wiederum ringsherum alles prüfst und angrenzenden Zahlenfelder aufdecken möchtest.

Und dieser Schritt wäre falsch aber Du machst ihn ja auch nicht.
Natürlich nicht, denn die Aufdeck-Regel sagt ja: Wenn keine Mine in den Nachbarfeldern, dann decke auch alle Nachbarfelder auf.
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
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#129

AW: Minesweeper

  Alt 27. Mär 2015, 13:23
Natürlich nicht,
Hab' ich jetzt auch schon gemerkt, dass Du gar nicht das gemeint hast, was ich in Deinen Satz fälschlicherweise hineininterpretiert habe.

Auf deutsch:
Ich habe etwas gelesen, was Du gar nicht geschrieben hast und mich dadurch danach gewundert, dass Du es trotzdem so machst, wie es meiner Meinung nach richtig und regelkonform ist.

Manchmal hilft Brille aufziehen und noch 2 mal lesen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#130

AW: Minesweeper

  Alt 27. Mär 2015, 13:28
Ich sach ma: Saii ist am Zug.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 13 von 14   « Erste     3111213 14      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz