Abschnittsübersicht

    • Schlange erstellen

      Die Schlange wird mit dem Turtle-Module erzeugt. Wenn du dir den folgenden Code ansiehst, wird aus der Variablen Snake ein Turtle-Objekt Snake = t.Turtle(), so dass die Funktionen des Turtle-Moduls vom Objekt raupe verwendet werden können. 

      Bild: Variable raupe ist ein Turtle-Objekt

      Das Initialisieren der Schlange erfolgt wieder über eine eigene Funktion, die wir schreiben.

      Bild: Initialisierungsfunktion für die Schlange

      Die Geschwindigkeit der Schlange wird zu beginn auf 1 gesetzt speed(1)

      Die Form der Schlange wird zu einem Kreis mit shape('circle')

      Als Farbe habe ich eine schwarze Schlange gewählt color('black'), du kannst dir wieder eine Farbe frei wählen.

      Zu Beginn soll die Schlange keine Richtung zugewiesen bekommen richtung = "keine".

      Damit keine Linien gezeichnet werden muss der Stift angehoben werden penup(), da mit dem Turtle-Module sonst gezeichnet wird.

      Und zum Schluss soll noch eine Startposition festgelegt werden mit goto(x-Wert, y-Wert). Mit dem Befehl goto(wertX, werty) kannst du die Turtle entlang der Koordinaten der Oberfläche bewegen. Das ist einfacher, da man genau bestimmen kann, wo die Turtle sich befinden soll.

      Bild: Koordinatensystem

      Damit die Eigenschaften für die Schlange auch gesetzt werden, muss die Funktion noch aufgerufen werden.

      Der Zwischenstand des Programms sieht wie folgt aus:

      Bild: Programm Zwischenstand 2

      Wenn wir unser Programm speichern und ausführen, sieht es wie folgt aus:
      Bild: Snake Spiel - Ergebnis Zwischenstand 2

    • Es kommt Bewegung in die Schlange

      Als nächste soll sich die Schlange bewegen, und zwar immer in die Richtung, die der gerade gedrückten Pfeiltaste entspricht.

      Dabei kannst du ausnutzen, dass jeder Tastendruck ein Event auslöst: ein Ereignis, das das Spielfeld zur Kenntnis nimmt, wenn wir es dazu auffordern, auf diese Ereignisse zu achten (zu lauschen, auf Englisch to listen).

      Mit der Anweisung Spielfeld.listen() sagst du dem Spielfeld, dass es auf Tastendruck-Events lauschen soll.

      Die vier Pfeiltasten der Tastatur lösen die vier folgenden Events aus: Up, Down, Right, Left (hoch, runter, rechts und links).
      Für jedes dieser Evens denken wir uns nun einen Funktionsnamen aus. Die Funktion wird beim Eintreten des Events ausgeführt. Die Verbindung zwischen dem Funktionsnamen und dem Event stellt man durch den Befehl onkey her.

      Für die Pfeiltasten erstellen wir uns nun eine Initialisierungsfunktion mit der wir den Events die entsprechende Funktion zuweisen und außerdem dem Spielfeld die Anweisung geben auf diese Events zu "lauschen".


      Nun fehlen aber noch die Funktionen selbst.

      Bild: Funktionen Richtung

    • Damit sich die Schlange in die Richtung bewegt, die gedrückt wurde, muss sie nun noch ihre Position verändern. Eine Position wird durch zwei Zahlen angegeben, die x-Koordinate (die sich ändert bei der Bewegung von links nach rechts) und die y-Koordinate (die sich ändert bei der Bewegung von oben nach unten).

      Wir müssen uns also zunächst die aktuelle x- und y-Koordinate merken, damit wir sie dann mit der Schrittlänge hoch oder runterzählen können.

      x=Snake.xcor() und y=Snake.ycor()

      Auch die Änderung der Position werden wir wieder in einer eigenen Funktion schreiben.


      Da man bei diesem Spiel natürlich nicht nur einmal eine Pfeiltaste drückt, sondern immer wieder, wirst du eine Schleife verwenden, die das Spielfeld mit der Position der Schlange immer wieder neu zeichnet. Das Zeichnen des Spielfeldes haben wir bereits Spielfeld.update(). Diese Anweisung muss nun in eine Schleife und unsere Funktion zur Bewegung der Schlange kommt dazu:


      Das Programm sieht somit wie folgt aus:

      Bild: Programm Zwischenstand 3