Delphi-PRAXiS
Seite 10 von 14   « Erste     8910 1112     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Minesweeper (https://www.delphipraxis.net/184385-minesweeper.html)

Popov 26. Mär 2015 14:32

AW: Minesweeper
 
Zitat:

Zitat von Sir Rufo (Beitrag 1294934)
Wenn ein Feld aufgedeckt wird, dass keine Mine im Nachbarfeld hat, dann werden auch alle Nachbarfelder aufgedeckt.

Jajn. In der Regel schon, es gibt aber eine Ausnahme. Beispiel:
Code:
|*|1|_|_|
+-+-+-+-+
|1|1|_|_|
+-+-+-+-+
|_|#|1|1|
+-+-+-+-+
|_|_|1|*|
Nehmen wir an die Raute ist der Klick und das Feld ist auch leer. Nun werden alle Felder um das Feld (mit Raute) offen gelegt, bis auf das Feld oben rechts (wenn es frei ist, also weder eine Mine, noch eine Zahl enthällt).

Enthält das Feld oben rechts von dem Klick (Raute) eine Zahl
Code:
|*|1|1|*|
+-+-+-+-+
|1|1|1|1|
+-+-+-+-+
|_|#|1|1|
+-+-+-+-+
|_|_|1|*|
wird auch das Feld oben rechts offen gelegt.

Warum aber nicht das Erste? Weil dieses Feld bereits zum nächsten freien Fläche gehört. Berühren sich zwei freien Flächen über Ecke, werden sie nicht offen gelegt wenn eine der Flächen frei wird. Das würde sonst u. U. das ganze Minen-Feld offen legen und nur Minen verdecken.

DeddyH 26. Mär 2015 14:57

AW: Minesweeper
 
BTW: http://www.delphipraxis.net/faq.php?faq=dp_05#faq_dp_11
Zitat:

Null Bock? Nicht hier.
Mit Fragen, die sich lesen wie "...ich habe weder Ahnung noch Lust, kann mir mal einer mein Programm schreiben..." wirst Du hier nicht auf Gegenliebe stoßen. Wir sind gerne bereit, jedem zu helfen, der selber Engagement zeigt - aber wir machen nicht die Hausaufgaben Anderer. Zudem ist es unerlässlich, dass Du Dich selber mit dem Problem befasst hast, bevor Du in der Lage bist, dazu eine präzise Frage zu stellen. Etwas völlig Anderes ist es natürlich, wenn Du (noch) nicht weißt, wonach Du suchen sollst, bzw. wo Du anfangen sollst. Dann frage gerne nach geeigneten Stichworten.
Damit will ich auf keinen Fall dem TE irgendetwas unterstellen, aber entsprechende Härtefälle sind eben klar geregelt.

Bjoerk 26. Mär 2015 15:19

AW: Minesweeper
 
Popow, wie gesagt, war nicht persönlich gemeint und du bist sicherlich auch ein guter Lehrer. Ich finde gerade deine Posts sonst ganz nett soweit, bist auch immer sehr hilfsbereit.

Ich hatte dieses Thema selbst mal vor Jahren im DelphiTreff. Dort vertrat ich im wesentlichen deine Ansicht. Ich bezeichnete das damals als Lernen am Modell. Was ich aber dabei übersah, daß man meistens seinen eigenen Stil bevorzugt, die eigene Denkweise nicht der des TE entsprechen muß und den TE auch nicht seine eigenen Erfahrungen machen lässt.

Manchmal gerät durch zu viel Code das Anliegen des TE auch etwas in den Hintergrund.

Sehe das nicht so strikt wie's jetzt vielleicht rüberkommt. Wollte hier jetzt auch keine Diskussion eröffnen. Vielleicht mal in Kölle beim Kölch, bin ja öfters da bei meinem Brother. :)

LG
Thomas

Mavarik 26. Mär 2015 15:51

AW: Minesweeper
 
[OT]

Zitat:

Zitat von Sir Rufo (Beitrag 1294930)
PS: Der Lerneffekt ist proportional zur Eigeninitiative, darum ist Vorsagen/Abschreiben von Komplett-Lösungen zwar kurzfritig hilfreich, langfristig betrachtet allerdings relativ wertlos.

Das ist das Ding mit dem Hunger, dem Fisch und der Angel...

Wenn sich hier 3-5 Profis die seit TurboPascal 1.0 programmieren, 5 Zeilen Sourcecode posten oder auch mal ne ganze Unit hab Ich nix dagegen. Ich sage immer 10 Zeilen Source sagen mehr als 100 Worte...

Wenn es aber um Hausaufgaben geht - und dass habe ich letztens erst wieder erfahren müssen - fällt das für mich in den Bereich Lehrauftrag und Nachwuchsförderung. Hier gibt es für mich 3 Abstufungen:

Frage (1): Ich will das Programmieren habe aber keine Ahnung wie!
Antwort (1): Papier und Bleistift nehmen und erst mal planen ohne Delphi!

Frage (2): Ich möchte XY machen weiß aber nicht wie!
Antwort (2): Die beste Antwort ist dann nicht in Delphi sondern in Logik-Sprache

Frage (3): Ich bekomme hier in Zeile XY eine Exception warum?
Antwort (3) : In Delphi: versuche mal Array[i-1] nicht Array[i]... (Beispiel)

Aber das ist nur meine Meinung und keine Forumsregel...

Mavarik

[/OT]

BadenPower 26. Mär 2015 16:20

AW: Minesweeper
 
Zitat:

Zitat von Popov (Beitrag 1294936)
Jajn. In der Regel schon, es gibt aber eine Ausnahme. Beispiel:
Code:
|*|1|_|_|
+-+-+-+-+
|1|1|_|_|
+-+-+-+-+
|_|#|1|1|
+-+-+-+-+
|_|_|1|*|
Nehmen wir an die Raute ist der Klick und das Feld ist auch leer. Nun werden alle Felder um das Feld (mit Raute) offen gelegt, bis auf das Feld oben rechts (wenn es frei ist, also weder eine Mine, noch eine Zahl enthällt).

Das ist doch schon wieder falsch.

Zum 100. mal: Die Diagonale ist keine Grenze.

In diesem Beispiel wird auf Feld(1,2) mit der Raute geklick.
geöffnet werden:
(0,2),(1,2),(0,3),(1,3) UND (2,1),(3,1),(2,0),(3,0)

Beispiel siehe Bild in Post #82.

saii 26. Mär 2015 16:38

AW: Minesweeper
 
Liste der Anhänge anzeigen (Anzahl: 1)
Erstmal: Ich möchte nicht, das ihr das Programm für mich schreibt. Ich brauche nur leider viel Hilfe.
Ich werde auch Popov's Programm nicht einfach so abgeben. Ich werde meins fertigstellen (soweit wie ich komme).

Weiß jemand, warum keine Panels aufgedeckt werden, wenn ich auf ein Panel ohne benachbarte Minen drücke?
Warscheinlich was ganz banales, was ich übersehe :(

Sir Rufo 26. Mär 2015 16:43

AW: Minesweeper
 
Zitat:

Zitat von BadenPower (Beitrag 1294947)
Zitat:

Zitat von Popov (Beitrag 1294936)
Jajn. In der Regel schon, es gibt aber eine Ausnahme. Beispiel:
Code:
|*|1|_|_|
+-+-+-+-+
|1|1|_|_|
+-+-+-+-+
|_|#|1|1|
+-+-+-+-+
|_|_|1|*|
Nehmen wir an die Raute ist der Klick und das Feld ist auch leer. Nun werden alle Felder um das Feld (mit Raute) offen gelegt, bis auf das Feld oben rechts (wenn es frei ist, also weder eine Mine, noch eine Zahl enthällt).

Das ist doch schon wieder falsch.

Zum 100. mal: Die Diagonale ist keine Grenze.

In diesem Beispiel wird auf Feld(1,2) mit der Raute geklick.
geöffnet werden:
(0,2),(1,2),(0,3),(1,3) UND (2,1),(3,1),(2,0),(3,0)

Beispiel siehe Bild in Post #82.

So isses :thumb:

Eine ganz simple Regel (die anscheinend schwer zu begreifen ist :stupid:)

Bjoerk 26. Mär 2015 16:51

AW: Minesweeper
 
Zitat:

Zitat von saii (Beitrag 1294950)
Erstmal: Ich möchte nicht, das ihr das Programm für mich schreibt. Ich brauche nur leider viel Hilfe.
Ich werde auch Popov's Programm nicht einfach so abgeben. Ich werde meins fertigstellen (soweit wie ich komme).

Weiß jemand, warum keine Panels aufgedeckt werden, wenn ich auf ein Panel ohne benachbarte Minen drücke?
Warscheinlich was ganz banales, was ich übersehe :(

Weil der Algo so nicht geht. Da muß z.B. rekursiv was gemacht werden. Siehe Z.B. Popov oder #73 mit #80 von meiner Wenigkeit (auch die Beispiele von BadenPower).

Popov 26. Mär 2015 16:56

AW: Minesweeper
 
Zitat:

Zitat von BadenPower (Beitrag 1294947)
In diesem Beispiel wird auf Feld(1,2) mit der Raute geklick.
geöffnet werden:
(0,2),(1,2),(0,3),(1,3) UND (2,1),(3,1),(2,0),(3,0)

Beispiel siehe Bild in Post #82.

Das Bild in Post #82 unterstützt deine Aussage nicht.

Sir Rufo 26. Mär 2015 17:01

AW: Minesweeper
 
Zitat:

Zitat von Popov (Beitrag 1294954)
Zitat:

Zitat von BadenPower (Beitrag 1294947)
In diesem Beispiel wird auf Feld(1,2) mit der Raute geklick.
geöffnet werden:
(0,2),(1,2),(0,3),(1,3) UND (2,1),(3,1),(2,0),(3,0)

Beispiel siehe Bild in Post #82.

Das Bild in Post #82 unterstützt deine Aussage nicht.

Doch, sogar zweimal, allerdings musst du das Bild um 180° drehen, damit es zu deiner Beschreibung passt und somit diese widerlegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Seite 10 von 14   « Erste     8910 1112     Letzte »    

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