Problem bei Snake



  • Hoi ich baue gerade Snake in der Konsole nach, Kollisions Abfragen hab ich schon gebaut nur jetzt stell ich mir gerade die Frage wie lasse ich meine Schlange von alleine laufen?

    So prüfe ich ob z.b. eine bestimmte Taste gedrückt wurde:

    key = getch();
    
     if ( key == KEY_LEFT )
     {
       // do something ...
     }
    

    Nur wenn ich so die Tastenabfrage mache dann kann ich meine Schlange nicht mehr von alleine laufen lassen. 😞

    Gibts da eine Standard C++ Funktion die mein Problem löst?
    Oder muss ich da auf die API Funktionen von meinem OS (Windows) zurückgreifen.

    Wie ich das mit API Funktionen lösen könnte da fällt mir denke ich was ein aber ich will es mit Standard C++ versuchen. Hat wer eine Idee?


  • Global Moderator |  Mod

    Betriebssystem-/Konsolen-API.

    C++ ist vom Sprachstandard her sehr abstrakt. Dieser geht nicht davon aus, dass das Eingabegerät eine Tastatur ist, bei der Tasten zu einem Zeitpunkt gedrückt sein können oder nicht, sondern von einem allgemeinen Gerät, welches einfach einen Strom von Zeichen liefert.

    Ähnlich ist es mit der Ausgabe, auch da wird nicht von einem Monitor ausgegangen, sondern von irgendetwas, das irgendwie einen Strom von Zeichen annehmen und verarbeiten kann. Ich nehme mal an, du wirst schon unbewusst Nicht-Standard-Features benutzt haben, wenn du Snake in der Konsole darstellst.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Wenn du im Forum nach snake suchst, wirst du mehrfach fündig.
    Irgendetwas mit kbhit() war es.