Projekt in C++ Skill Tree

Ein Sokoban-Spiel mit Rückgängig-Funktion entwickeln

Baue ein spielbares C++-Terminalspiel mit legalen Schritten, einzelnen Kistenschüben, tatsächlicher Zielprüfung und vollständiger Zustandsrücknahme.

ProjektC++

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Ein Sokoban-Spiel mit Rückgängig-Funktion entwickeln ist ein praktisches C++-Projekt für Lernende mit Grundkenntnissen der Sprache. Du baust ein spielbares Terminalspiel, in dem eine Figur Kisten auf Zielfelder schiebt, unmögliche Züge zurückweist und eine vorherige Aktion vollständig rückgängig machen kann.

Der Kurs verbindet zwei Guided Labs mit einer eigenständigen Challenge. Zuerst implementierst du das Gehen, das Schieben einer einzelnen Kiste und die tatsächliche Zielprüfung. Danach speicherst du vollständige Zustandswerte und stellst sie beim Rückgängigmachen wieder her. Schließlich wendest du dieselben Regeln auf ein anderes Lager mit zwei Kisten an. Jedes Lab stellt eigene Dateien bereit; Dateien oder laufende Spiele werden nicht aus einer früheren Umgebung übernommen.

Was du lernen wirst

Nach Abschluss des Kurses kannst du:

  • feste Wände und Ziele von den veränderlichen Positionen der Figur und aller Kisten trennen;
  • Geh- und Schiebebedingungen vor einer Zustandsänderung prüfen, sodass abgelehnte Aktionen nichts verändern;
  • den Erfolg daraus ableiten, dass jede Kiste auf einem Ziel steht, und ihn nach einem Zug oder dessen Rücknahme neu berechnen;
  • vollständige Zustände nur für legale Züge in einen vector-Verlauf kopieren und anschließend die Figur und jede Kiste sicher wiederherstellen;
  • eine wiederverwendbare C++-Spielengine kompilieren und spielen, die unterschiedliche legale Wege unterstützt und die ursprünglichen Level erhält.

Für wen dieser Kurs geeignet ist

Der Kurs richtet sich an C++-Lernende, die mit Objekten, Wertkopien und Standardcontainern ein interaktives Programm mit klaren Regeln erstellen möchten.

Voraussetzungen: Grundlegende Navigation im Terminal sowie Kenntnisse über C++-Klassen, Funktionen, Strings und vector. Die Guided Labs erklären das feste Spielfeld, Zugbedingungen, vollständige Zustandsschnappschüsse und die Verlaufsoperationen.

Lernumgebung: LabEx stellt eine vorbereitete Linux-Umgebung im Browser mit C++17-Compiler, Codegerüst, kleinen Leveln, einem funktionierenden Beispiel und Terminal bereit. Spielsteuerung, Meldungen und Befehlsausgaben bleiben auf Englisch.

Häufig gestellte Fragen

Schreibe ich die gesamte Spielanwendung?

Du implementierst Bewegung, Zielprüfung und Rücknahme in engine.cpp. Laden der Level, Textdarstellung und Einlesen der Befehle sind vorbereitet. Du kompilierst deine Engine zu einem spielbaren Programm; eine lokale Installation oder Grafikengine ist nicht erforderlich.

Muss ich den kürzesten Lösungsweg finden?

Nein. Unterschiedliche legale Wege werden akzeptiert. Im Mittelpunkt stehen korrekte Zustandsänderungen und vollständige Rücknahme, nicht automatische Lösungssuche oder eine optimale Zugzahl.

Kann ich einen siegreichen Schiebezug zurücknehmen?

Ja. Nach dem Abschluss kannst du weiterspielen. Die Rücknahme stellt die Figur und alle Kisten wieder her, auch den Zustand vor dem entscheidenden Schiebezug. Der Verlauf gehört zum aktuellen Spiel im Arbeitsspeicher; ein Programmneustart beginnt ein neues Spiel und lädt keinen gespeicherten Spielstand.

Lehrer

labby
Labby
Labby is the LabEx teacher.

Für Sie empfohlen

no data