TigerJython4Kids
HomeTurtlegrafikRobotikDatenbanken
tetris

ARBEITSBLATT 3: TETRIS MIT OXOCARD

 

 

SPIELBESCHREIBUNG

  Das Spiel ist dem berühmten Tetris nachempfunden, aber stark vereinfacht. Du hältst das Board so in der Hand, dass acht Vierreihen vor dir liegen.

Zu Beginn des Spiels erscheinen in der untersten Reihe 4 Farben, die festlegen, mit welchen Farben d. die Spalten zu füllen sind.

Auf der obersten Reihe wird nun ein Stein (Pixel) mit zufälliger Farbe sichtbar, der sich nach unten bewegt.  Du kannst ihn mit den Buttons nach links- bzw. nach rechts verschieben (vorausgesetzt, es hat dort noch keine Steine), mit dem Ziel, ihn in der gleichfarbigen Spalte zu platzieren. Fällt ein Stein auf eine falsche Farbe, so wird er selbst und auch der darunter liegende Stein gelöscht (ausser ganz unten).
 
Insgesamt werden 24 Steine fallen gelassen und die Herausforderung besteht darin, möglichst viele Steine in den richtigen Spalten zu platzieren.

 

 

TEILAUFGABE 1: FALLENDE STEINE IN ZUFÄLLIGEN FARBEN

 

Das folgende Programm zeichnet fallende rote Steine, die in einer zufällige gewählten Spalte x = 2 bis x = 5 ganz oben starten.

Programm:

from oxocard import *
from random import randint

while True:
    x = randint(2, 5) #random start position 
    y = 0
    
    while y < 8:
        dot(x, y, RED)        
        sleep(0.2)
        dot(x, y, BLACK)
        y += 1 
► In Zwischenablage kopieren

Erweitere das Programm so, dass die neuen Steine eine zufällige Farbe aus den Farben RED, GREEN, YELLOW und BLUE haben. Am besten speicherst du dazu die Farben in einem Tupel colors:

colors = (RED, GREEN, YELLOW, BLUE)

 

 

TEILAUFGABE 2: MIT BUTTONS SPALTE WECHSELN

 

Mit Klick auf den unteren linken Button soll sich der fallende Stein um eine Spalte nach links, beim Klick den unteren rechten Button um eine Spalte nach rechts verschieben. Beachte, dabei dass sich die Steine nur in den Spalten x = 2 bis x = 6 verschieben dürfen.

Um einen Buttonklick zu verarbeiten, fügst du einen Test

button.was_pressed()

in die Wiederholschleife ein.

 

 

TEILAUFGABE 3: FARBEN IN DEN SPALTEN FESTLEGEN

 

Schreibe eine Funktion init(), welche in der Zeile 7 die vier Spaltenfarben festlegt. Wähle die Farben in der Reihenfolge der Liste colors.

Sorge auch dafür, dass die Pixels in der Zeile y = 7 nicht durch die fallenden Steine überdeckt  werden., indem du sie nur bis in Zeile y = 6 fallen lässt.

 

 

TEILAUFGABE 4: BELEGTE ZELLEN ERKENNEN

 

Jetzt möchtest du die korrekt platzierte Steine stehen lassen. Dazu musst du vorausblickend kontrollieren, ob du den Stein auf die nächste Zeile herunterfallen lässt. Es gibt verschiedene Fälle: Ist der Platz frei, so gibt es kein Problem und du kannst das Pixel herunterfallen lassen. Ist aber dort bereits ein Stein und hat dieser die gleiche Farbe, so beendest du das Herunterfallen, sonst musst du gemäss der Spielvorgabe den darunter liegenden Stein und den Stein selbst löschen.

Du kannst die Farbe c eines Pixels an der Stelle x. y zurückholen, indem du
c = getColor(x, y)  aufrufst.

 

 

TEILAUFGABE 5: LINKS-/RECHTSVERSCHIEBUNG EINSCHRÄNKEN

 

Du kannst natürlich einen Stein nicht nach links oder rechts bewegen, wenn dort bereits eine Steinsäule vorhanden ist. Verhindere also die Verschiebung des fallenden Steins, wenn sich links oder rechts davon bereits ein Stein befindet.

 

 

TEILAUFGABE 6: SPIELENDE / ERGEBNIS ANZEIGEN

 

Nun bist du fast fertig: Begrenze noch die Anzahl der Spielsteine auf 24 und beende das Spiel, nachdem alle gespielt sind Die erreichte Punktzahl (der Score) ist gleich der Totalzahl der gesetzten Steine. Schreibe den Score auf dem Display aus..

 

 

TEILAUFGABE 7: EIGENE IDEEN EINBAUEN

 

Ergänze oder modifiziere das Spiel nach deinen eigenen Ideen, um ihm einen persönlichen Touch zu geben.