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 2 von 4     12 34      
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
 
blablab

 
Delphi 7 Enterprise
 
#11
  Alt 6. Nov 2009, 16:44
Die Bestenliste fehlt, ganz wichtig!
  Mit Zitat antworten Zitat
Teekeks

 
FreePascal / Lazarus
 
#12
  Alt 6. Nov 2009, 16:45
Vermutlich ein paar übereinander --> jenachdem welches gesehen werden soll

Cooles Dings!
Peter
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

 
FreePascal / Lazarus
 
#13
  Alt 6. Nov 2009, 16:51
es war so grauslich, daß ich den Fehler 87 ganz übersehen hab.
war da WINEXEC schuld?

oder muß ich das selbst heraus finden?

Gruß
K-H

P.S. das schlimme ist ja das das Teil wirklich funktioniert, ein bißchen lahm auf der Tastatur, aber ES GEHT!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#14
  Alt 6. Nov 2009, 16:59
Der 87-Fehler scheint nur in der "neueren" VCL zu liegen.
Diese gibt einfach nach so 500-1000 Objekten auf.
Man kann sich dann die Form nicht mehr ansehn, wobei Kompilieren dennoch geht, aber sobald die VCL ebenfalls im Programm die Form laden soll, dann ist der Fehler auch dort.

@p80286: ich war ehrlich gesagt auch sehr überrascht, daß es dennoch so gut läuft

Und das mit dem langsam Reagieren: Es wird jeweils die lezte Taste (pro Intervall) alle 100ms ausgewertet und es werden keine schnellen Tastenfolgen zwischengespeichert.
Soll es schneller reagieren, dann einfach die Zeit von Timer2 runtersetzen, aber dann ist auch die Schlange schneller.

[add]
Zitat von DeddyH:
Das hab ich mir schon gedacht, ...
und deswegen ist die Festerposition auch nicht fest ... damit es besser auffällt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#15
  Alt 6. Nov 2009, 16:59
Zitat von himitsu:
die Idee ist mir Aufgrund eines gewissen "Programm zurücksetzen"-Threads gekommen
Das hab ich mir schon gedacht, aber wir sollten ja da schon nicht nach dem Sinn fragen
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
 
#16
  Alt 6. Nov 2009, 17:11
Wat ne Freakshow...

Aber die Idee, ein Snake aus DP-Foren-Symbolen zu machen, finde ich irgendwie... lustig.
米斯蘭迪爾
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

 
Delphi 11 Alexandria
 
#17
  Alt 6. Nov 2009, 17:28
Dann will ich mal nicht zurückstecken und ein Musterbeispiel für leserlichen Code präsentieren. Das Programm ist natürlich noch ausbaufähig *g*.
Angehängte Dateien
Dateityp: zip nonsense_118.zip (3,0 KB, 24x aufgerufen)
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#18
  Alt 6. Nov 2009, 17:45
Wer schon immer Mal wissen wolltet, wie man mit Delphi Musik macht:
Delphi-Quellcode:
uses Windows, Math;

procedure TForm1.FormCreate(Sender: TObject);
const
  C = 0/8;
  D = 1/8;
  E = 2/8;
  F = 3/8;
  G = 4/8;
  A = 5/8;
  B = 6/8;
  H = 7/8;
var
  T, O, L: Integer;
  X: Extended;
begin
  // PLAY "T160 O1 L8 C D E D C D L4 E C C"
  T := 160; {160}
  O := 1;
  L := 8;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  L := 4;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "T160 O1 >L20 C D E D C D L10 E C C"
  T := 160; {160}
  O := 1;
  L := 20;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  L := 10;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "O0 L16> C C C E"
  T := 160; {160}
  O := 0;
  L := 16;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));

  Sleep(2500);

  // PLAY "O0 L32 E F G E F D C"
  T := 160; {160}
  O := 0;
  L := 32;
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * F / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * G / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * E / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * F / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * D / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
  Beep(Round(4186 / Power(2, 6 - O)*2 + 4186 * C / Power(2, 6 - O)*2), Round((1000 / L) * (160 / T)));
end;
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#19
  Alt 6. Nov 2009, 17:54
Fehler, geht nicht!
Miniaturansicht angehängter Grafiken
fehler_654.gif  
Matti
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze

 
Turbo Delphi für Win32
 
#20
  Alt 6. Nov 2009, 17:57
Du musst dir natürlich erstmal 'ne Power-Funktion schreiben (so 100 Zeilen lang oder sowas).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 03:38 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