Snake Feld



  • Hey,
    ich bin momentan drauf und dran ein Snake-Spiel zu programmieren mit einer Konsole. Da ich noch nicht ganz so lange programmiere, habe ich da so meine Schwierigkeiten.

    Die Schlange sollte auf dem Spielfeld entlanglaufen das ungefähr so aussehen sollte:

    "####################"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "#xxxxxxxxxxxxxxxxxx#"
    		     	    "####################"
    

    Leider weiß ich einfach nicht, wie ich das Feld erstellen soll auf dem die "Schlange" entlangläuft.
    Wie bekomme ich hin das das Feld nicht immerwieder erneurt wird sondern bleibt und aktualisiert wird, sodass die Schlange um ein 'x' weiter gewandert ist.

    Alle Sachen die ich bei Google gesucht habe waren etwas zu kompliziert.
    Ich habe gehofft ihr könnt mir das nochmal erklären.

    Danke
    (ich benutze übrigens Microsoft Visual C++ 2008)



  • Bitte ersten Link in meiner Signatur anklicken.



  • Probier dein Feld in ein 2Dimensionales Char Array zu packen. Dann kannst du die einzelnen Felder mit den "x und y" Koordinaten ansprechen. Brauchst dann "nurnoch" eine Funktion, die das Spielfeld aktualisiert.



  • Merk dir in einer Dequeue die Positionen aller Glieder der Schlange.
    In jedem Bewegungsschritt wird das letzte Element entfernt und ein neues Element an den Anfang gesetzt (in Bewegungsrichtung). Ausnahme: Die Schlange läuft über Futter. Dann muss das letzte nicht entfernt werden.

    Inb4: Dequeue ist scheiße, nimm Vector!!!!!111eins



  • D.J. schrieb:

    Wie bekomme ich hin das das Feld nicht immerwieder erneurt wird sondern bleibt und aktualisiert wird

    [...]

    Alle Sachen die ich bei Google gesucht habe waren etwas zu kompliziert.

    Dazu solltest Du die Ausgabe mit WinAPI - Funktionen und nicht mit printf / cout machen. Dann kannst Du nämlich ganz gezielt bestimmte Positionen auf der Konsole manipulieren. Wühl mal ein bisschen im Konsole-Forum, dort gibt es ganz sicher Beispiele. Ansonsten hilft die MSDN:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073(v=vs.85).aspx


Anmelden zum Antworten