AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Das wohl beste Schlange der Welt
Thema durchsuchen
Ansicht
Themen-Optionen

Das wohl beste Schlange der Welt

Ein Thema von himitsu · begonnen am 6. Nov 2009 · letzter Beitrag vom 7. Nov 2009
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von himitsu
himitsu
Registriert seit: 11. Okt 2003
Moin ihr,

hier habt ihr mal das vermutlich allerbeste Schlange-Spiel (Snake, falls es wer nicht kennt) der Welt.


Ich denk mir, daß es vorallem wegen der extrem vielen Kommentare vorallem für lernwillige Schüler bestens geeignet ist.
Dazu kommen noch die voll aussagekräftigen Objekt- und Variablennamen
und auch die sehr verständlich beschrifteten Buttons.

Ansonsten besteht es auch nur einem Label, 2 Buttons, 3 4 Timern (mir fällt bestimmt noch was für Weitere ein) und 2561 3102 Images.

Und einer knuffigen nur ~15 MB kleinen DFM ... wobei die Bilder selber nur je 2-3 KB sind.
(schon erstaunlich, wie gut 7-Zip komprimieren kann )
Es gibt aber inzwischen auch ein paar "optimiertere" Versionen. (siehe #38)



Aber ihr müßt zugeben, die Grafik ist doch erstklassig, oder?


schnell weg hier




PS: mit neueren Delphis gibt es ein klitzekleines Problemchen
Zitat:
---------------------------
Project1
---------------------------
Systemfehler. Code: 87.

Falscher Parameter.
---------------------------
OK
---------------------------
diesen ist anscheinend die Form zu leer.
Aber dafür soll es ja ein Fixup geben > Hier im Forum suchenSystemfehler Code 87

Falls noch wer weitere Ideen für weitere Verschlimmbesserungen hat ... sagt es ruhig.
Und ja, ich hatte grad etwas Lange Weile und mir fehlt der Negierenthread.

[add]
ach ja, mein letztes richtiges Snake hatte ich noch in QBasic programmiert

[add]
Weitere Infos, zu den einzelnen Versionen, sind im Beitrag #38 zu finden.
Miniaturansicht angehängter Grafiken
unbenannt_125.png  
Angehängte Dateien
Dateityp: 7z schlange_716.7z (413,5 KB, 109x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#31
  Alt 6. Nov 2009, 21:17
Zitat von isilive:
Und ich wollte schon ernsthaft antworten nachdem ich die .exe gestartet habe, bis ...
Fast 3000 Zeilen -> *RESPECT*
Es sind jetzt grade eben 3636 Zeilen geworden

> kleines Update ... so alle 60 Sekunden taucht noch ein nettes [?] auf, welches nette sachen macht


Wobei 3000 Zeilen davon nur die Klassendefinition (das Interface) abfallen

Und wenn man den Code wirklich optimiert, dann sollte man bestimmt locker die 300 Zeilen unterschreiten können


ich editiere es oben dann gleich auch noch (es sind ja nun 4 Timer und 3102 Images, was fast das Maximum ist, was D7 noch schafft)

und 'ne nette 15 MB kleine DFM
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

 
Delphi 2009 Professional
 
#32
  Alt 6. Nov 2009, 21:27
Zitat von himitsu:
Wobei 3000 Zeilen davon nur die Klassendefinition (das Interface) abfallen
Und wenn man den Code wirklich optimiert, dann sollte man bestimmt locker die 300 Zeilen unterschreiten können
Das wäre doch eine Idee für einen Contest -> WER kriegt dieses Programm in voller Funktionalität auf die wenigsten Zeilen Code...

(Oder alternativer Contest: Wer schreibt das coolste Snake Programm mit <= 300 Zeilen Code.)

Erinnert mich an die Scene-Contests mit 64kb-Intros.
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#33
  Alt 6. Nov 2009, 21:31
Gewonnen!
Michael
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#34
  Alt 6. Nov 2009, 22:40
Zu den Images: Ich hatte letztens ein C# Projekt im VS2008 wo ich versucht habe, 16 Buttons mit Bildern zu füttern. Ging nicht. Die letzten 5 gingen partout nicht rein (man konnte nicht mehr speichern wg. einer OutOfMemory-Exception) Es waren Bilder einer Digitalkamera, also zugegebenermaßen hochaufgelöst.
Ich musste die dann erst verkleinern bevor alles lief

Btw.: Die Bilder wurden base64-encodiert in einer XML-datei gespeichert ...
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

 
Turbo Delphi für Win32
 
#35
  Alt 7. Nov 2009, 00:04
Zitat von patti:
Naja, dass das nicht ernst gemeint sein kann von jemandem, der über 11.000 Beiträge verfasst hat und dass es ein Beispiel sein soll, wie man es nicht machen soll, ist mir schon bewusst.
Muss nicht zwingend sein

Btw. Himitsu, du bist nicht damit gemeint.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#36
  Alt 7. Nov 2009, 06:50
Himitsu, wenn das ein Beispiel sein soll, wie man es nicht macht, dann könntest Du ja dieses Beispiel nehmen und auch gleich zeigen, wie man es richtig macht, wenn Du schon so viel Zeit hast Was hälst Du davon ?
Rolf Warnecke
  Mit Zitat antworten Zitat
Teekeks

 
FreePascal / Lazarus
 
#37
  Alt 7. Nov 2009, 09:07
Aber das ist doch auch mal ne variante:
Man sucht im I-Net... "ahh, dieses Wort "if" kommt auch in dem unbeispiel vor, darf ich also nicht nehmen..."
Peter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#38
  Alt 7. Nov 2009, 11:28
Für die vielen IFs gibt es ja auch das CASE


Sooooooooooo, jetzt gibt es 3 Versionen

0:
das originale "wie man es vielleicht nicht machen sollte"

1:
dort wurde(n)
- einige Variablennamen und Buttonbeschriftungen verständlichert
- die Groß-/Kleinschreigung verbessert
- Code-Duplikate entfernt und in eigene Funktionen/Prozeduren gekapselt
- der Inhalt vom häßlichen Label in die Titelleiste verschoben
- der Reset wird nicht mehr über einen kompletten Neustart erledigt

2:
ja und hier wurden dann noch viele der die zuvielen Images entfernt
und der Status der einzelnen Felder in einem Array gespeichert,
anstatt ihn aus der Sichbarkeit der jeweiligen Images zu generieren

3:
kommt vielleicht auch bald
hier würde dann vermutlich alles auf EIN Canvas umgestellt

Code:
.  DFM-     EXE-     PAS     PAS
    Größe   Größe   Größe   Zeilen

0:  15 MB  7,2 MB   93 KB  3636
1:  15 MB  7,1 MB  6,3 KB   247
2: 266 KB  589 KB  6,1 KB   250
3:   -        -       -          -
An der Funktionsweise des Programms wurde aber nichts verändert.
(abgesehn von dem Label, dem Reset und einer "besseren" Button-Steuerung aka SetFokus)

Codes in Beitrag #1 > Download

Man mag es nicht glauben, aber in der knapp 410 KB kleinen 7Zip sind unschlagbare 44 MB drinnen.
Das sollte wohl auch erkenntlich machen, daß selber die Komprimierungsprogramme der Meinung sind, daß da etwas leicht unoptimal gelaufen ist.


Und das Ganze zeigt, wohl, daß ein paar "kleine" Optimierungen
- kein doppelter/mehrfacher Code
- eine halbwegs ordentliche Codeformatierung
- und ein gesundes Maß an Optimierung
den gesamten Code wesentlich lesbarer und verständlicher machen.
Und es spart sogar Zeit und Nerven ... ihr glaubt nicht, wie anstrengend es war all diese Images dort reinzubekommen
und sich bei der Indizierung nicht ständig zu verzählen (im Programmcode).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 17:05 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