-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
27. Mär 2015
Ok. Danke Kumpel.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
27. Mär 2015
Ja, sehe ich auch so. Hätte aber halt eine Frage? Hat mal jemand Lust, dieses System einzugeben (Die X sind die Minen) und dann in die linke obere und rechte obere Ecke zu klicken. Stimmt das Bild mit deinem überein? Danke!
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
27. Mär 2015
Ok. Thanx. Deine DeckMichAuf ist klasse. Damit sieht's in meinem Code auch gleich wesentlich entspannter aus. Stimmt das mit der Fahne?
procedure TMinesweeperForm.Play(X, Y: integer); // PanelsMouseUp, Button mbLeft;
var
I, J: integer;
begin
if InPanelGrid(X, Y) // Wenn im Raster;
and FPanels.Enabled // und noch nicht aufgedeckt;
and (FPanels.FlankingMinesCount >= 0) // und...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
"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?
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Ich kenn das Spiel ja quasi erst seit gestern aber kann es sein daß wir das vergessen haben? "Wenn man auf ein leeres Feld klickt, öffnen sich alle anschliessenden leeren Felder + das erste mit einer Zahl belegten Feld" (aus einem VB Forum). Oder stimmt das nicht? :gruebel:
Also zusätzlich zur Rekursion noch den Code nach den ???
procedure TMinesweeperForm.Play(X, Y: integer); //...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Oh Bud, ich hab langsam echt kein Bock mehr? Bist n netter Kerl, aber schau dir doch halt mal zum Beispiel #73 und #80 an. Der Panel ist zwar erzeugt aber PanelsA weiß davon ggf. nichts. Weiß nicht mehr. Vielleicht ist auch deine Rekursion falsch?
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Weil der PanelA noch nicht erzeugt ist. Das kannst du z.B. in der CreatePanels machen. Schau ggf. mal wie ich das gemacht hab. Die IntA brauchen wir dann auch nicht mehr.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
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).
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
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...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
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.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Klar, bin ja nicht erst seit gestern hier? Anyway, keine Regel ohne Ausnahme.. :zwinker:
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Stimmt. Badenser vor. :thumb: Ich kannte das Spiel nur vom Namen her und muß sagen ich finds ganz nett (Jedenfalls besser als das langweilige Fußballspiel gestern abend). :)
procedure TMinesweeperForm.Play(X, Y: integer); // PanelsMouseUp, Button mbLeft;
var
I, J: integer;
begin
if FPanels.FlankingMinesCount > 0 then
FPanels.Caption := IntToStr(FPanels.FlankingMinesCount)
else...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
26. Mär 2015
Weil das ja so simple ist würde ich ggf. vorschlagen, daß du das kurz in der Play ergänzt. :-D
unit MinesweeperUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
25. Mär 2015
Muß man die IntA ect. evtl. auf Null prüfen (keine Ahnung?) bevor Caption auf '_' gesetzt wird?
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
24. Mär 2015
Du suchst doch Row und Col des Panels auf das geklickt wurde?
procedure TForm1.PanelMatrixMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
S: string;
C: char;
Panel: TPanel;
Row, Col: integer;
begin
if Sender is TPanel then
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
24. Mär 2015
Du brauchst nur die Pointer abspeichern.
var
Panels: array of TPanel;
function IndexOfPanel(Panel: TPanel): TPoint;
var
X, Y: integer;
begin
Result.X := -1;