Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Python (Snake) Verbesserungsvorschläge (https://www.delphipraxis.net/67257-python-snake-verbesserungsvorschlaege.html)

netscanner 12. Apr 2006 11:34

Re: Python (Snake) Verbesserungsvorschläge
 
passiert der fehler eigentl. nur weil rechner zu langsam oder wegen was anderem???

eisblock 12. Apr 2006 11:35

Re: Python (Snake) Verbesserungsvorschläge
 
Zum Highscore: wenn man den knackt, soll man seinen Namen ja ohne Leerzeichen eingeben:
1. wieso?
2. wenn man doch eins eingibt oder wenn man Zahlen eingibt, wird ein Delphi-Fehler angezeigt und der eigene Highscore wird überhaupt nicht angezeigt und auch nicht gespeichert > lässt sich deutlich besser lösen
3. warum verbietest du nicht einfach die Eingabe eines Leerzeichens, z.B. mit
Delphi-Quellcode:
procedure TForm1.EditXKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['A'..'Z', 'a'..'z', Char(VK_BACK)]) then
  Key := #0;
end;
Das EditXKeypress natürlich noch auf deine Nummer des Edits anpassen.
4. Wenn man dann seinen Namen eingegeben hat, wird der neue Highscore nicht sofort in der Anzeige aktualisiert, sondern erst, wenn man ein neues Spiel mit ENTER begonnen hat.
5. Man kann bei der Eingabe des Namens einen unendlich langen Namen eingeben. Ich würde die maximale Eingabelänge des Edits mit dem MaxLength-Wert setzen
6. Bei der Frage nach der Zeit in Millisekunden kann man auch Buchstaben eingeben. Deshalb analog zu oben bitte folgenden Code im Keypress-Event verwenden:
Delphi-Quellcode:
procedure TForm1.EditXKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', Char(VK_BACK)]) then
  Key := #0;
end;
Außerdem würde ich dann nochmal vom Programm prüfen lassen, ob wirklich nur Nummern eingegeben wurden.

Aber ansonsten ist dein Programm wirklich gut :thumb:

netscanner 12. Apr 2006 11:38

Re: Python (Snake) Verbesserungsvorschläge
 
@
cruiser:

ich finde zu deinem punkt absolut nix...
könntest du mir mal einen teil vom code (zur tasetnabfrage) per PM oder so schicken?

cruiser 12. Apr 2006 11:44

Re: Python (Snake) Verbesserungsvorschläge
 
Mal sehn wie man das auf die schnelle adaptieren könnte... bei nem TPoint ist der Nachteil, dass du's nicht direkt im case nutzen kannst :/

wenn isKeyPressed eine Funktion ist die prüft ob in der Zwischenzeit eine bestimmte Taste gedrückt wurde (Die Arbeit nehm ich dir nicht ab ;) ) könnt mans etwa so machen (und zwar im OnTimer):

Delphi-Quellcode:

// Deklarationen:
// richtung : globalevariable vom typ TRichtung
// bLeft etc. : lokale Variable vom typ Boolean

if isKeyPressed(VK_Left) then bLeft := true;
// wiederholen für die anderen Richtungen
// => du weisst welche Tasten gedrückt wurden

case Richtung of
  riLeft : begin
    if bHoch then richtung := riHoch;
    if bRunter then richtung := riRunter;
  end;
  // wiederholen für die anderen 3 Fälle
end;

// auf richtung reagieren und entsprechend zeichnen
Das ist nicht geprüft aber so müsst es sauber gehn ;)

netscanner 12. Apr 2006 11:52

Re: Python (Snake) Verbesserungsvorschläge
 
lass mich raten und die procedure
isKeyPressed


muss mit GetAsyncKeyState gemacht werden oder :)

cruiser 12. Apr 2006 11:54

Re: Python (Snake) Verbesserungsvorschläge
 
Geraten, suche benutzt oder PM gelesen? :twisted:

netscanner 12. Apr 2006 11:58

Re: Python (Snake) Verbesserungsvorschläge
 
immer diese verdammten besserwisser ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 2 von 2     12   

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