Projekt:2020/LightsOut

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Seite zum Projekt "LightsOut" des Informatik 9 Diffkurses im Schuljahr 2020/21.

Projektziel

Programmiere das Spiel LightsOut mit Python. Nutze das TigerJython als Entwicklungsumgebung.

GameGrid

TigerJython kommt mit verschiedenen Modulen, zum Beispiel dem bekannten gturtle Modul, das Du bisher mit from gturtle import * eingebunden hast. Für die Entwicklung von Spielen gibt es die Bibliothek gamegrid, die mit from gamegrid import * importiert wird.

Die folgende Programmvorlage kannst du als Startpunkt für dein Spiel benutzen:

from gamegrid import *

def mausklick(e):
	pass # bedeutet: tue nichts; muss durch eigenen Programmcode ersetzt werden

# 3x3 Quadrate mit der Kantenlänge 50.
# Das Gitter wird in grau (gray) gezeichnet und Steuerungselemente werden ausgeblendet (False).
# Bei Mausklicks wird die Funktion "mausklick" aufgerufen.
makeGameGrid(3, 3, 50, Color.gray, False, mousePressed = pressCallback)

# Hole den Hintergrund, um damit zu arbeiten
bg = getBg()

# Zeige das Spielfenster
show()

Wichtige Funktionen

Du kannst dir die Hilfe zu GameGrid in TigerJython anzeigen lassen (wie die Hilfe zu GTurtle). Um "LightsOut" zu implementieren, reichen aber theoretisch diese Funktionen:

bg = getBg()
Speichert den Hintergrund in der Variablen bg. Der Hintergrund hat verschiedene Funktionen, die mit bg.funktionsname() aufgerufen werden können:
bg.fillCell(Location, Color)
Färbt das Quadrat an der Position Location in der Farbe Color ein.
bg.drawGridLines(Color)
Zeichnet die Gitternetzlinien in der Farbe Color.
bg.getColor(Location)
Ermittelt die Farbe des Quadrats an der Position Location.
loc = Location(x, y)
Speichert eine Position mit den Koordinaten x und y in der Variablen loc. Positionen können für verschiedne andere Funktionen als Parameter benutzt werden.
loc.x
Die x-Koordinate der Position.
loc.y
Die y-Koordinate der Position.