Unterrichtsbaustein · Detail

Bomberman light: Raster-Bombe

Der Baustein führt zentrale Konzepte der rasterbasierten Spielentwicklung in Python 2 mit frameCraft ein. Im Mittelpunkt stehen die schrittweise Modellierung von Spielfeld, Bewegung, Bombenlogik, Explosionen und Spielzuständen in einem bewusst klein gehaltenen Bomberman-light-Projekt.

Zeit 90 min
Format KI-Coding
Technik frameCraft
Aufgaben 21
Vorschaubild: Bomberman light: Raster-Bombe

KI-gestützter Projektaufbau

Strukturiertes Programmieren mit KI-Coding und ProtoTypeFirst

Dieser Kurs wurde speziell für Lernende entwickelt, die mit KI-Unterstützung strukturiert programmieren und bestehenden Code gezielt weiterentwickeln möchten.

KI-Coding im Projektstand

KI-Coding integriert eine kontextbewusste KI direkt in CodeRoom. Sie erweitert bestehenden Code, erklärt Fehler, setzt gezielte Änderungen um und unterstützt die Weiterentwicklung im aktuellen Projektstand.

Transparente Code-Entwicklung

Der Kurs legt den Schwerpunkt auf didaktisch eingebettete Unterstützung, nachvollziehbare Änderungen und sofort testbare Ergebnisse. Prompts, Änderungen und Versionen bleiben dadurch für die unterrichtliche Begleitung transparent.

ProtoTypeFirst-Format

Alle Inhalte starten mit einem bereits funktionierenden Prototyp. Dieser wird schrittweise mit KI-Coding weiterentwickelt, sodass jede Erweiterung an einem sichtbaren Ausgangszustand ansetzt.

Einführung

Der folgende Auszug zeigt den Einstieg des Unterrichtsbausteins in gekürzter Form.

Du startest nicht mit einem fertigen Spiel, sondern mit einer vorbereiteten Baustelle. Die Szene läuft bereits, zeigt einen Titel, ein einfaches Spielfeld-Rechteck, eine Platzhalterfigur und einen Marker. Das eigentliche Bomberman-Spiel entsteht erst durch deine Änderungen mit dem AI Coding Window.

Didaktische Einordnung

Der Baustein wird fachlich und unterrichtspraktisch kompakt eingeordnet.

Fachliche Zielsetzung

Der Baustein macht die Entwicklung eines rasterbasierten Spiels als Folge kleiner, prüfbarer Modellierungsschritte sichtbar. Zentrale Konzepte sind Raster-Pixel-Umrechnung, zustandsbasierte Spiellogik, Datenlisten für Spielobjekte sowie die Trennung von Startaufbau und Laufzeitregeln.

Kompetenzentwicklung

  • Modellieren: Rasterfelder, Spielfiguren, Bomben und Blöcke werden als strukturierte Daten im Projekt abgebildet.
  • Algorithmisieren: Bewegung, Sperren, Countdown, Explosion und Siegbedingung entstehen aus klaren Regelprüfungen.
  • Abstrahieren: Eine Hilfsfunktion für Raster-zu-Pixel-Positionen reduziert Wiederholungen und macht Koordinatenlogik nachvollziehbar.
  • Testen: Jede Erweiterung kann am sichtbaren Prototyp überprüft und in ihrem Effekt eingeordnet werden.

Unterrichtlicher Mehrwert

  • Der funktionierende Startprototyp bietet einen klaren Ausgangspunkt für schrittweise Erweiterungen.
  • Die Aufgabenfolge zerlegt ein Spielsystem in überschaubare Teilmechanismen.
  • Erweiterungsaufträge ermöglichen Differenzierung über Gegner, Zielzustände, Neustart und Punkte.

Ablauf der Unterrichtseinheit

Die Aufgaben werden in der Reihenfolge des JSON dargestellt und als Entwicklungsschritte des Projekts zusammengefasst.

1

Rasterlinien sichtbar machen

Der vorhandene Spielfeldbereich wird um einfache Rasterlinien ergänzt. Dadurch wird aus dem Platzhalterfeld eine sichtbar strukturierte Spielfläche, ohne bereits Regeln oder Kollisionen einzubauen.

2

Spieler wie eine Bomberman-Figur gestalten

Die Platzhalterfigur wird grafisch zu einer kleinen Bomberman-ähnlichen Spielfigur weiterentwickelt. Position und Logik bleiben unverändert, damit Darstellung und Verhalten getrennt bearbeitet werden.

3

Rasterposition des Spielers speichern

Für den Spieler werden eigene Szenenwerte für Spalte und Zeile angelegt. Diese Datenstruktur bereitet die spätere feldweise Bewegung vor, ohne die Figur bereits automatisch zu bewegen.

4

Spieler auf Rasterfeld ausrichten

Die Startposition der Figur wird aus Rasterspalte, Rasterzeile und Feldgröße berechnet. Damit passt die Spielfigur erstmals sichtbar zum Rastermodell des Spielfelds.

5

Rasterposition in Pixelposition umrechnen

Eine Hilfsfunktion berechnet aus Spalte und Zeile die Pixelmitte eines Rasterfelds. Diese zentrale Umrechnung wird anschließend für die Spielerposition verwendet und bildet die Grundlage für weitere Objekte.

6

Ein-Schritt-Rasterbewegung einbauen

Die Richtungsaktionen verändern die gespeicherte Rasterposition jeweils um ein Feld. Danach wird die Figur mit der Umrechnungsfunktion neu platziert, noch ohne Wandprüfung oder Animation.

7

Bewegung entprellen

Eine einfache Bewegungssperre verhindert, dass ein gehaltener Richtungsknopf in jedem Frame weitere Schritte auslöst. Erst nach dem Loslassen wird ein neuer Einzelschritt möglich.

8

Feste Wände vorbereiten

Eine Liste mit festen Wandfeldern wird angelegt und im Raster sichtbar dargestellt. Die Wände blockieren die Bewegung noch nicht, sondern werden zunächst als eigene Spielfeldobjekte eingeführt.

9

Bewegung gegen Wände sperren

Die Bewegungsregel prüft vor jedem Schritt, ob das Zielfeld in der Wandliste liegt. Der Spieler kann dadurch nur noch auf freie Felder ziehen.

10

Zerstörbare Blöcke anzeigen

Neben festen Wänden wird eine Liste zerstörbarer Blöcke ergänzt. Diese Felder erhalten eine eigene Darstellung, bleiben aber zunächst ohne Explosions- oder Entfernen-Logik.

11

Bombe als Datenobjekt platzieren

Bei einer Bombenaktion wird ein Bombeneintrag mit der aktuellen Spielerposition gespeichert. Zunächst ist nur eine Bombe gleichzeitig erlaubt; Sichtbarkeit, Zähler und Explosion folgen später.

12

Bombe nur einmal pro Tastendruck legen

Eine Bombensperre verhindert, dass ein gehaltener Bombenknopf wiederholt neue Einträge erzeugt. Erst nach dem Loslassen der Aktion wird das Platzieren erneut freigegeben.

13

Bombe zur Laufzeit sichtbar machen

Vorhandene Bombeneinträge werden während des laufenden Spiels als Figuren gerendert. Die Aufgabe macht deutlich, dass dynamische Objekte nicht nur beim Szenenstart aufgebaut werden können.

14

Bomben-Zähler ergänzen

Jede Bombe erhält einen zeitlichen Zähler, der mit der Frame-Zeit sinkt. Nach Ablauf wird sie für die Explosion markiert, ohne die Explosion bereits zu zeichnen.

15

Kreuz-Explosion anzeigen

Aus einer bereiten Bombe entsteht eine kurze Kreuzform aus Explosionsfeldern. Entfernen von Blöcken und Schaden bleiben noch ausgeklammert, damit die Explosionsgeometrie isoliert sichtbar wird.

16

Blöcke durch Explosion entfernen

Die Explosionsfelder werden mit den zerstörbaren Blöcken verglichen. Nur betroffene Blöcke werden aus der Liste entfernt; feste Wände bleiben unverändert.

17

Punkte für zerstörte Blöcke anzeigen

Ein Punktewert und eine HUD-Anzeige werden ergänzt. Die Punkte steigen, wenn ein zerstörbarer Block durch eine Explosion verschwindet.

18

Spielerschaden prüfen

Die Spiellogik prüft, ob die Spielerposition auf einem Explosionsfeld liegt. In diesem Fall wird ein Verluststatus gesetzt und eine einfache Game-Over-Nachricht angezeigt.

19

Einfachen Gegner ergänzen

Ein Gegner wird als eigenes Rasterfeld angelegt und im Spielfeld dargestellt. Er bewegt sich noch nicht und verursacht noch keinen Schaden, sondern erweitert zunächst das Objektmodell des Spiels.

20

Levelziel und Siegbedingung hinzufügen

Ein einfaches Ziel wird definiert: Sind alle zerstörbaren Blöcke entfernt, wechselt der Spielstatus auf gewonnen. Eine sichtbare Siegmeldung macht den Abschluss des Levels erkennbar.

21

Neustart per Taste und Touch

Eine Start- beziehungsweise Restart-Aktion wird mit Tastatur und Touch verbunden. Bei gewonnenem oder verlorenem Status startet ein Tastendruck die Szene sicher neu.

Codeausschnitt

Das Fragment zeigt die vorbereitete Zustandsstruktur und die Stelle, an der Bewegung, Bomben und Regeln später schrittweise ergänzt werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
SZENE(
    'start',
    punkte=0,
    spiel_status='baustelle',
    raster_spalten=11,
    raster_zeilen=9,
    feld_groesse=16,
    bomben=[],
    bloecke=[],
    gegner=[]
)
def baustellen_regel(ctx):
    spieler = figur_von(ctx, 'spieler')
    if spieler is None:
        return
    status = wert_von(ctx, 'spiel_status', 'baustelle')
    if status == 'baustelle':
        # TODO: Hier entstehen später Bewegung, Bombe und Spielregeln.
        if aktion_aktiv(ctx, 'bombe'):
            pass
Ein sichtbarer Prototyp wird Schritt für Schritt zu einem nachvollziehbaren Rasterspiel mit klaren Zuständen und prüfbaren Regeln.

Der Baustein unterstützt eine klare Unterrichtsorganisation, weil jede Erweiterung an einem laufenden Projekt ansetzt und überprüfbare Ergebnisse erzeugt. Differenzierung ist über zusätzliche Gegner, Zielbedingungen, Punkte oder Neustartlogik möglich.

Fordern Sie einen Demo-Zugang an und erproben Sie den Baustein im eigenen Kurskontext.