Delphi-PRAXiS
Seite 5 von 14   « Erste     345 67     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)

Mavarik 25. Mär 2015 10:16

AW: Minesweeper
 
Zitat:

Zitat von DeddyH (Beitrag 1294730)
Es geht doch noch einfacher.

Viele Wege führen nach Rom. Da ich die Koordinate schon in Left/Top habe... Kann ich das Tag Feld für andere Sachen benutzen.

Taktzykle technisch ist "Deine" Methode etwas schneller als Mit Div und Mod.
Aber es erspart leider den Hilfesuchenden auch das nachdenken... :stupid:

Mavarik

DeddyH 25. Mär 2015 10:25

AW: Minesweeper
 
Um "schneller" ging es mir gar nicht. Aber ich mag nicht einsehen, dass ich Werte neu berechnen soll, wenn ich sie vorher bereits verfügbar hatte.

Mavarik 25. Mär 2015 10:30

AW: Minesweeper
 
Zitat:

Zitat von DeddyH (Beitrag 1294730)
Delphi-Quellcode:
const
  BITS_PER_BYTE = 8;

btw. Seit wann hab sich die Bits zu mehr oder weniger als acht in einem Byte zusammengerottet...?

DeddyH 25. Mär 2015 10:39

AW: Minesweeper
 
Man kann auch Konstanten definieren, um Magic Values zu vermeiden, das erhöht die Lesbarkeit des Codes.

[edit] Nachtrag: http://de.wikipedia.org/wiki/Magisch...8Informatik%29
Zitat:

Ein im Sourcecode eines Programms auftauchender Zahlenwert (auch engl. „hard coded value“ genannt), dessen Bedeutung sich nicht unmittelbar erkennen lässt – seine Bedeutung ist somit „magisch“. Derartige Magische Zahlen sind zu vermeiden und durch gut benannte Konstantendefinitionen zu ersetzen, deren Name Bedeutung und Herkunft klar angeben.
[/edit]

Popov 25. Mär 2015 10:46

AW: Minesweeper
 
Ohne das jetzt einiges zu kritisieren (es sind alles Top Ideen und Vorschläge), aber der TE ist meiner Meinung nach ein Anfänger. Das ist auch der Grund wieso er den für den Profi aufwendigen Weg mit Palels geht, statt es anders (besser) zu machen. Womit sich die Frage stellt ob er mit den ganzen Vorschlägen etwas anfangen kann (oder überhaupt zu der Zeit will).

Mavarik 25. Mär 2015 10:53

AW: Minesweeper
 
Zitat:

Zitat von Popov (Beitrag 1294748)
Das ist auch der Grund wieso er den für den Profi aufwendigen Weg mit Panels geht, statt es anders (besser) zu machen.

Ich finde das mit den Panels gar nicht schlecht... Besser als Buttons... :stupid:

Mavarik

[OT]

Zitat:

Zitat von DeddyH (Beitrag 1294745)
Man kann auch Konstanten definieren, um Magic Values zu vermeiden, das erhöht die Lesbarkeit des Codes.

für GIF87a (0x474946383761) lass ich mir das ja noch gefallen...

Aber für ein Shl 8 oder Shl 16 genauso wenig wir für Byte := Byte XOR $FF;

Man kann es auch übertreiben...

[/OT]

DeddyH 25. Mär 2015 10:55

AW: Minesweeper
 
Wenn ich schon Konstanten einführe, dann konsequent. Aber jeder so, wie er meint.

Mavarik 25. Mär 2015 11:01

AW: Minesweeper
 
Zitat:

Zitat von DeddyH (Beitrag 1294754)
Wenn ich schon Konstanten einführe, dann konsequent. Aber jeder so, wie er meint.

Ist ja alles richtig... Ich hatte nur "Angst" das Du sagt... Wenn ich das mit XY-Pascal für XY CPU übersetze ist ein Byte 9 bit...:stupid:

Popov 25. Mär 2015 11:05

AW: Minesweeper
 
Zitat:

Zitat von DeddyH (Beitrag 1294745)
Man kann auch Konstanten definieren, um Magic Values zu vermeiden, das erhöht die Lesbarkeit des Codes.

Ich weiß nicht ob ich dir widersprechen oder zustimmen soll. Der Widerspruch wäre: guck, auch in den Delphi Units gibt es Magic Values. Warum soll man es besser als Delphi machen? Die Zustimmung wäre: ich hab mich mal etwas genauer mit RTF und Fonts auseinandergesetzt weil ist es brauchte. Ich benötigte nicht alle Details, aber mehr als die Hilfe verriet. Dazu habe ich etwas im Delphi-Code gestöbert und bin stets auf Zahlen gestoßen mit denen ich nichts anzufangen wußte. Als ich nach Tagen alle Magic Values entschlüsselt habe, wußte ich für kurze Zeit fast alles über RTF und Fonts ;)

Nur eine Auswahl auf die Schnelle:
Delphi-Quellcode:
procedure TCustomRichEdit.Print(const Caption: string);
...
begin
...
    if IsRectEmpty(PageRect) then
    begin
      rc.right := PageWidth * 1440 div LogX;
      rc.bottom := PageHeight * 1440 div LogY;
    end

function TTextAttributes.GetSize: Integer;
...
begin
...
  Result := Format.yHeight div 20;
end;

function TTextAttributes.GetHeight: Integer;
begin
  Result := MulDiv(Size, RichEdit.FScreenLogPixels, 72);
end;

DeddyH 25. Mär 2015 11:09

AW: Minesweeper
 
Und das soll was genau aussagen? "Wenn andere etwas schlecht machen, darf ich das auch" oder "Mein Code war schwer zu schreiben, dann soll er auch schwer zu lesen sein"?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:07 Uhr.
Seite 5 von 14   « Erste     345 67     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