![]() |
AW: Snake - Ein Problem mit dynamischen Arrays
Das Exceptions zur Ablaufsteuerung genutzt werden, ist in diesem Fall sicher nicht korrekt.
Aber: Viel schlimmer ist, dass sich darauf verlassen wird, das es einen Speicherzugriffsfehler gibt, wenn man außerhalb des Arrays liest. Es ist nicht garantiert, dass der Speicherplatz um das Array herum nicht lesbar ist. Du könntest also durchaus lesbaren Speicher treffen. Noch schlimmer wird es dann, wenn du dann auch noch reinschreibst :pale: Mit einer Indexprüfung sollte dieses Problem zwar nicht auftreten, aber weder ist die standardmäßig nicht eingeschalten, noch sollte man sich darauf verlassen, dass das immer so ist. Zitat:
Verabschiede dich von dem Gedanken, dass dein Hinweis theoretisch war. Programmierer (also evtl. auch nicht-Informatiker) sollte eine Queue kennen und ohne viel nachzudenken programmieren können. |
AW: Snake - Ein Problem mit dynamischen Arrays
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal eben Just4Fun ein Snake-Spiel mit TMemo programmiert.
Ist nicht viel drin, nur ein Level. Gesteuert wird mit den Cursortasten. |
AW: Snake - Ein Problem mit dynamischen Arrays
Zitat:
Zitat:
Zitat:
|
AW: Snake - Ein Problem mit dynamischen Arrays
Zitat:
man bewege sich nach rechts und drücke schnell hintereinander [RUNTER] + [LINKS]. Dann kommt die Fehlermeldung, dass man sich in den Schwanz gebissen hat. Du hast zwar abgefangen, dass man nicht direkt einen Richtungswechsel in die entgegengesetzte Richtung unternehmen kann, allerdings kann man es mit 2 Bewegungen während des Timers Schaffen dis zu umgehen. Ich habe es bei mir so gelöst: Wenn eine Taste gedrückt wird -> Tastendruck := True Wenn nun Tastendruck 'True' ist, können keine Weiteren Eingaben gemacht werden, bis im OnTimer Event Tastendruck wieder auf False gesetzt wird. Hat jemand einen besseren Vorschlag ? P.S.: Klar, dass das nur ein quick-and-dirty Programm ist, wie du schon sagtest. |
AW: Snake - Ein Problem mit dynamischen Arrays
Sooo.
Das Programm ist nun soweit fertig und muss felißig getestet werden :lol: Zu finden ist es hier in der Projekt Abteilung: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz