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 1 von 2  1 2      
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Minesweeper

  Alt 26. Mär 2015, 12:49
Was soll das hier werden? Postet jetzt jeder seinen Minensucher? Mavarik hatte doch schon mich (und wie ich im nachhinein finde völlig zurecht und was mir nur aus Begeisterung passierte) darauf aufmerksam gemacht, daß es in den allermeisten Fällen nicht hilfreich ist, ganze units zu posten? Sorry, ist nicht persönlich gemeint.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Minesweeper

  Alt 26. Mär 2015, 13:35
@Bjoerk

Ich könnte das nun politisch machen und das Grundgesetz zitieren, aber das wäre dann doch ein Overkill. Aber lass mich dann doch klein wenig den Geist unserer Verfassung hier einbringen, in dem da wäre: kein Mensch sollte sich über den anderen erheben.

Das hier ist ein Forum. Das hier ist keine Moodle- oder andere Lern-Platform, die den Sinn hat den Leuten etwas beizubringen. Wer hier postet hat ein Problem und möchte gerne eine Lösung. Wer hier ein Problem postet, der macht es nicht um zu diskutieren, sondern um etwas zu erfahren. Er will eine Lösung.

Wenn ein Anfänger die Aufgabe vom Lehrer bekommt ein Programm zu schreiben, und er kommt mit der Aufgabe nicht klar, so dass er hier postet, dann liegt es an jedem User hier ob er ihm hilft oder nicht. Aber eines werde ich garantiert nicht machen - ich werde mich nicht über den Anfänger erheben und versuchen einen Delphi-Lehrer zu spielen. Ich werde mir nicht das Recht nehmen zu sagen: wenn ich ihm den ganzen Code gebe, dann lernt er nichts. Ich bin nicht seine Mama, ich bin nicht sein Papa, ich bin auch nicht sein Lehrer. Er ist ein freier Mensch der selbst entscheiden muss wie er glücklich wird. Und wenn ich aus Langeweile die Lösung programmiere und hier poste, dann liegt es an dem Fragersteller ob er das beachtet oder nicht. Oder ob er vielleicht dann doch lieber die kleinen Hinweise hat und selbst an das Ziel zu kommen. Dieses Recht werde nicht ich für ihn ausüben, denn wer bin ich denn, dass ich mir das Recht nehme über jemand anders zu entscheiden?

Also, entweder ist das hier ein Lehrer-Forum wo Programmierer die Probleme haben etwas lernen können. Dann sollten sich aber bitte alle dann auch so verhalten und didaktisch korrekt lehren. Oder es ist ein Problem Forum, d. h. jeder der Probleme hat darf sie posten und drauf hoffen, dass einer antwortet. Und wie einer drauf antwortet, das sollte jedem selbst überlassen werden.

Aber wo wir schon dabei sind - es gibt im Grunde zwei Arten wie einer etwas lernen kann: man lernt an einem Tag das A, am zweiten das B, am dritten das C usw. Irgendwann nach Wochen hat man so viel gelernt, dass man daraus ein Wort bilden kann. Die zweite Methode ist gleich mit dem Wort anzufangen, z. B. "Apfel". Danach nimmt man sich die einzelnen Buchstaben durch.

Wie gesagt, das hier ist kein Lehrer-Forum, sondern ein Hilfe-Forum. Deshalb ist es eigentlich unhöflich einem der Hilfe braucht nur ein Schlagwort zu liefern mit dem Gedanken - so lernt er es besser. Wer es so machen will, kann es so machen. Da ich aber hier kein Lehrer bin, entscheide ich gelegentlich einfach den ganzen Code zu geben. Weil es mir einfach egal ist ob er was lernt. Es ist seine Entscheidung. Es ist anmaßend diese Entscheidung für ihn zu übernehmen. Wenn einer am ertrinken ist, dann retten man ihn, man ruft ihm vom Strand nicht zu wie man schwimmen lernen kann.

Geändert von Popov (26. Mär 2015 um 13:37 Uhr)
  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
 
#3

AW: Minesweeper

  Alt 26. Mär 2015, 13:55
Was soll das hier werden? Postet jetzt jeder seinen Minensucher? Mavarik hatte doch schon mich (und wie ich im nachhinein finde völlig zurecht und was mir nur aus Begeisterung passierte) darauf aufmerksam gemacht, daß es in den allermeisten Fällen nicht hilfreich ist, ganze units zu posten? Sorry, ist nicht persönlich gemeint.
Ja, Nein, Jain ...

Hier im Forum kann man nicht erwarten fertigen Source zu bekommen -> es besteht keinerlei Anspruch durch den Fragenden (weder rechtlich noch moralisch).

Es ist aber nicht verboten (weder rechtlich noch moralisch)!

Was zugesichert wird ist, dass sich die (hier sehr aktive) Gemeinschaft die Frage anschaut und je nach Lust und Laune (es besteht keinerlei Verpflichtung, weder rechtlich noch moralisch) darauf etwas (mehr oder minder) Konstruktives antwortet.

Also wer will darf Source posten. Jeder den das stört darf sich dazu äussern. Jeder der sich an dieser Äußerung stört, darf sich auch äußern ... usw. usw. solange alle freundlich und beim Thema bleiben ist alles in Butter

PS: Der Lerneffekt ist proportional zur Eigeninitiative, darum ist Vorsagen/Abschreiben von Komplett-Lösungen zwar kurzfritig hilfreich, langfristig betrachtet allerdings relativ wertlos.
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
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Minesweeper

  Alt 26. Mär 2015, 15:51
[OT]

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]
  Mit Zitat antworten Zitat
BadenPower

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

AW: Minesweeper

  Alt 26. Mär 2015, 14:00
Was soll das hier werden? Postet jetzt jeder seinen Minensucher?
Warum nicht?
100 Minensucher, welche nahezu identisch aussehen, aber garantiert gleichzeitig 90 verschiedene Lösungsansätze in den Internas.

Durch solch einen Vergleich stellt man erst einmal fest, wieviele Wege, welche man machmal gar nicht in Betracht gezogen hatte, nach Rom führen.

Auch der Vergleich von kompletten Programmen kann durchaus lehrreich sein.
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
 
#6

AW: Minesweeper

  Alt 26. Mär 2015, 14:11
Um nochmal zu den Aufdeck-Regeln zu kommen:

Wenn ein Feld aufgedeckt wird, dass keine Mine im Nachbarfeld hat, dann werden auch alle Nachbarfelder aufgedeckt.
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)

Geändert von Sir Rufo (26. Mär 2015 um 14:19 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Minesweeper

  Alt 26. Mär 2015, 14:32
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.
  Mit Zitat antworten Zitat
BadenPower

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

AW: Minesweeper

  Alt 26. Mär 2015, 16:20
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.
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.

Geändert von BadenPower (26. Mär 2015 um 16:30 Uhr) Grund: Hervorhebung hinzugefügt
  Mit Zitat antworten Zitat
saii

Registriert seit: 20. Feb 2015
22 Beiträge
 
#9

AW: Minesweeper

  Alt 26. Mär 2015, 16:38
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
Angehängte Dateien
Dateityp: rar MINESWEEPER by saii.rar (194,9 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Minesweeper

  Alt 26. Mär 2015, 16:51
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).

Geändert von Bjoerk (26. Mär 2015 um 17:02 Uhr) Grund: #80 statt #83
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz