Homepage von Papa

Projekt Snake

Das Grundgerüst

Für die Programmierung mit der Bibliothek pygame habe ich für mich folgende Grundstruktur festgelegt:

###################################################
#  Definition der Importe
###################################################
import pygame

###################################################
#  Definition der Konstanten und Variablen
###################################################

#  Werte fuer das Spielefenster
BREITE = 800
HOEHE = 400

# Spielsteuerung
spielen = True

###################################################
#  Definition der Funktionen
###################################################

def fenster_definieren():
    print('in fenster_definieren')
    pygame.init()
    f = pygame.display.set_mode((BREITE,HOEHE))
    pygame.display.set_caption('Snake - das Schlangenspiel')
    return f


def spielschleife_aufrufen():
    print('in spielschleife_aufrufen')
    global spielen
    while spielen:
        print('in der Schleife selbst')
        spielen = False 
 

def spiel_verlassen():
    print('in spiel_verlassen')
    pygame.quit()
    quit()


###################################################
#  Programmstart
###################################################

print('Programmstart!')

fenster = fenster_definieren()

spielschleife_aufrufen()

spiel_verlassen()

Sieht aufgeräumt aus, oder?

Gehen wir es kurz durch.

Zur besseren Lesbarkeit habe ich wie oben beschrieben 4 Kommentarblöcke eingefügt, die Definition der Importe, Definition der Variablen, Definitionen der Funktionen und den Programmstart.

Warum ist der Programmstart jetzt unten? Das Programm fängt doch schon mit dem ersten import an?

Berechtigte Frage. Für mich ist alles, was vor Zeile 46 steht, die Deklaration des Programms. Also die grundsätzlichen Vorbedingungen, die gegeben sein müssen, damit das Programm läuft.

Also von oben nach unten, zuerst alle Importe. Im weiteren Verlauf brauchen wir noch eine weitere (random).

Der nächste Block sind die Konstanten und Variablen. Der Unterschied ist klar, oder? Konstanten verändern sich nicht während der Laufzeit des Programms, Variablen dagegen schon. Um das zu kennzeichnen, werden Konstanten durchgängig GROSS geschrieben, Variablen durchgängig klein.

Die beiden Konstanten BREITE und HOEHE sind die Pixel-Angaben für das Spielfenster, wir brauchen sie in Zeile 24.

Die Variable spielen ist vom Typ boolean (also "wahr" oder "unwahr"). Sie ist die zentrale Abbruchbedingung unserer Schleife um das ganze Spiel. Zu sehen ist das in Zeile 32.

Die Funktionen überspringe ich kurz, ich mache weiter mit Zeile 47. Hier beginnt für mich das eigentliche Programm. Der Start wird in Zeile 46 mit der print() -Funktion ausgegeben, das kennen wir ja schon.

Das eigentliche Programm besteht als aus den 3 hintereinander laufenden Funktionen fenster_definieren(), spielschleife_aufrufen() und spiel_verlassen().

Was machen die einzelnen Funktionen nun?

In fenster_definieren() wird die Bibliothek pygame intitialisert (Zeile 23) und das Fenster wird erzeugt. Hier ist das, was ich in Kapitel 4.2 angesprochen habe. In der Funktion wird die lokale Variable f benötigt, um das Fenster zu instanziieren. Die lokale Variable f wird zurückgegeben und in Zeile 48 in der globalen (weil außerhalb der Funktion benötigten) Variable fenster gespeichert.

Die Funktion spielschleife_aufrufen() beherbergt unsere zentrale Spielsteuerung, nämlich die Schleife while spielen:. Solange die Variable spielen wahr ist (also True) wird die Schleife nicht verlassen. Und hier sehen wir die vorangestellte Deklaration global spielen, das sagt uns, dass wir im Verlauf der Funktion die globale Variable spielen (die in Zeile 15, also außerhalb der Funktion definiert wurde) ansprechen und ändern wollen.

In unserem Gerüst setzen wir spielen sofort nach der Ausgabe von 'in der Schleife selbst' auf unwahr (also False), das beendet die Schleife nach nur einem Durchgang.

Weiter geht es dann mit der Funktion spiel_verlassen() in der das Fenster und auch das Programm selbst beendet werden.

Soviel zum Grundgerüst.

Wenn Ihr mögt, findet Ihr direkt unten ein Button zum Herunterladen des Codes. Die Datei ist gezippt und liegt als txt-Datei vor. Aufrufen Kopieren und in Thonny einfügen.

Wenn Ihr das Programm laufen lasst, passiert so gut wie nichts, einmal kurz flackert ein Fenster auf, das geht aber gleich wieder zu. In der Ausgabe der Kommandozeile von Thonny sollten aber sämtliche print()-Anweisungen erscheinen:

Damit ist der Grundstock gelegt, machen wir weiter.

  • Zurück
  • Weiter

Inhaltsverzeichnis:

1. Vorwort
2. Das Projekt
3. Vorarbeiten
4. Projekt Snake
4.1. Der Funktionsumfang
4.2. Die Planung der Umsetzung
4.3. Das Coden
4.3.1. Das Grundgerüst
4.3.2. Das Fenster
4.3.3. Der Schlangenkopf
4.3.4. Die Bewegung der Schlange
4.3.5. Kleine Verbesserungen
4.3.6. Das Futter platzieren
4.3.7. Die Schlange wächst
4.3.8. Den Spielstand ausgeben
4.3.9. Die Wiederholung
4.3.10. Der finale Stand
5. Abschluss

© by Papa. Die Seite ist online seit 2020.

Menu

  • Startseite
  • Projekte
    • Übersicht aller Projekte
    • Nachbau Snake
    • Taschenrechner
  • Helferlein
    • Übersicht Hilfprogramme
    • Fonts in pygame
    • Quellcode nach HTML
    • Text nach HTML
  • Impressum
  • Disclaimer

Modal content goes here