• Caterpillar in doodle simple style on white background

    Raupe-Spiel

    Du kennst vielleicht das Spiel Snake. Es zählt zu den Klassikern bei Spielen und ist relativ einfach gehalten. Das Raupe-Spiel ist ähnlich dem Snake-Spiel. Du wirst in diesem Abschnitt erfahren, wie du das Spielfenster einrichtest, die Raupe und das Futter erstellst.


    • https://www.davetrost.com/static/media/shell.f48db705.png Erstellen einer neuen Datei


      Um eine Python-Datei anzulegen, öffne IDLE (die installierte Entwicklungsumgebung für Python). Klicke auf File und anschließend auf New File. Speichere diese Datei als raupe.py indem du auf File und dann auf Save As gehst. Wähle dir einen geeigneten Speicherort für deine Python-Projekte, gib den Dateinamen ein und speichere die Datei ab.

      https://www.davetrost.com/static/media/shell.f48db705.png Module importieren


      Für die Programmierung des Spiels werden Befehle bzw. Funktionen verwendet, die aus Modulen zuvor importiert werden müssen.


      https://www.davetrost.com/static/media/shell.f48db705.png  Hintergrundfarbe festlegen


      Mit dem Befehl bgcolor('farbe') aus dem Modul turtle legst du die Hintergrundfarbe fest. Wähle dir eine Hintergrundfarbe, die dir gefällt. Du kannst an der Stelle von meinem Beispiel abweichen.

      Zur Auswahl der Farbe kannst du dir auf folgender Seite die Namen der Farben raussuchen.

      https://cs111.wellesley.edu/labs/lab02/colors

      =====>         

      Der hier #roteingefärbte Text beginnend mit # ist ein Kommentar. Kommentare helfen Programmieren ihren Code zu dokumentieren, um ihn zu strukturieren bzw. lesbar zu gestalten. Gerade bei größeren Programmen ist das Kommentieren sehr hilfreich.


      https://www.davetrost.com/static/media/shell.f48db705.pngRaupe erstellen


      Die Raupe wird mit dem Turtle-Module erzeugt. Wenn du dir den folgenden Code ansiehst, wird aus der Variablen raupe ein Turtle-Objekt raupe = t.Turtle(), so dass die Funktionen des Turtle-Moduls vom Objekt raupe verwendet werden können. Die Form der Raupe wird zu einem Rechteck mit shape('square'). Als Farbe habe ich eine rote Raupe gewählt color('red'), du kannst dir wieder eine Farbe frei wählen. Die Geschwindigkeit der Raupe wird zu beginn auf 0 gesetzt speed(0). Damit keine Linien gezeichnet werden muss der Stift angehoben werden penup(), da mit dem Turtle-Module sonst gezeichnet wird.
      Beim Starten des Spiels soll die Raupe zunächst ausgeblendet werden, dies geschieht mit hideturtle().
      Hier nun der vollständige Code für die Erzeugung der Raupe.



      https://www.davetrost.com/static/media/shell.f48db705.png Blatt erstellen


      Auch das Blatt wird wieder mit dem Turtle-Modul erzeugt. Die Form des Blattes wird mittels Koordinaten (x, y) erzeugt, dafür wird ein Tuple mit Koordinatenpunkten genutzt. In meinem Codebeispiel werden diese Koordinaten in die Variable blatt_koerper geschrieben.

      Anschließend wird die Form anhand der Koordinaten erzeugt mit t.register_shape('Bezeichnung', Liste mit Koordinaten), damit die Form aufgerufen werden kann benötigt sie eine Bezeichnung. Ich habe sie in meinem Beispiel blatt genannt. Nun folgt der Aufruf der Form mit shape('blatt'). Alles weiter ist wie zuvor bei der Raupe. Lege eine Farbe für das Blatt fest, setze die Geschwindigkeit auf 0, hebe den Zeichenstift an und verstecke das Blatt für den Programmstart.


      Erklärung zum Tupel:
      Innerhalb eines Tupels sind mehrere unveränderliche Werte gespeichert. Mit Hilfe eines Tupels kann eine mehrfache Zuweisung erfolgen.


      https://www.davetrost.com/static/media/shell.f48db705.png Texte erstellen


      Zum Abschluss erstellst du nun noch die Texte, die für das Spiel verwendet werden. Zum einen soll zu Beginn "Drücke Leertaste" erscheinen und zum anderen benötigt das Spiel einen Punktestand.

      Um herauszufinden, ob das Spiel bereits gestartet ist, wird eine Variable verwendet, die wahr oder falsch zurückgibt. Zu Beginn ist die Variable spiel_startet somit falsch (False).
      Die Texte werden wie die Raupe und das Blatt mit der Turtle erzeugt. Du kannst den Texten ebenfalls wieder eine Farbe geben. Um den Text nun zu schreiben, nutzt du die Funktion write(). Dieser Funktion wird zum einen der String (Text) übergeben, der ausgegeben werden soll, sowie dessen Anordnung (hier zentriert -> align='center') und die Formatierung des Textes (Schriftart, -größe und -stil). Der Text soll auch wieder versteckt werden.

      Für die Punkte legst du zunächst nur das Objekt fest, die Geschwindigkeit und versteckst die Anzeige.



      Dein Programm soll jetzt so aussehen:




    • Hier findest du die Lösung der Aufgabe von letzter Woche. Hier sieht man sehr gut, wie man die Funktion t.pencolor() kreativ einsetzt.

      Vielen Dank an Alp für diese wunderschöne Lösung! lächelnd

    • https://www.davetrost.com/static/media/shell.f48db705.pngFunktionen


      Funktionen spielen eine sehr wichtige Rolle in der Programmierung. Sie helfen uns, komplexe Programme zu schreiben und den Code lesbar zu machen.

      Man kann sich die Funktionen wie kleine Teilaufgaben vorstellen, die eine große Aufgabe ergeben. Zum Beispiel:

      Große Aufgabe:

      - ein Computerspiel spielen

      Kleine Teilaufgaben (Funktionen):

      - den Computer einzuschalten
      - anmelden
      - das Spiel starten
      - Spaß haben

      Letzte Woche haben wir ein Programm geschrieben, das ein Haus zeichnet. Zuerst haben wir die Wände mit dem Dach gezeichnet, danach das Fenster und die Tür. Vielleicht können wir das ganze in Funktionen unterteilen? Das Definieren der Funktionen erfolgt mit dem Befehl def + Namen der Funktion (ohne Leerzeichen!) + ():.

      die Wände + das Dach:


      das Fenster:

       

      die Tür:

      Um die Funktion aufzurufen, müssen wir nur ihren Namen unten schreiben.

      Achtung! Die Reihenfolge der Funktionsaufrufe ist sehr wichtig.

      Hier ist mein Haus mit der richtigen Funktionsreihenfolge(walls_roof() -> window() -> door()):


      und hier habe ich Funktionen window() und door() vertauscht...


    • Hier findest du den Code des Programms, das ich oben gezeigt habe. Um das Programm auszuprobieren, erstelle eine neue Datei in Python, kopiere den folgenden Code und füge ihn in deine Datei ein.