Beispielhafte Simulation eines Fussballspiels mit eigenständig agierenden Spielern durch eine Finite-state machine
Datei- und Klassenbeschreibung:
-
Ball .h .cpp
Platzhalter für weitere Logik (z.B. Beschleunigung, wetterabhängiges Verhalten etc.) -
Entity .h .cpp
Basisklasse für alles auf dem Spielfeld. Steuert Bewegung und Position. -
FiniteStateMachine .h .cpp
Schaltet zwischen den States der Spieler um (Idle, Move, Interact, Attack) -
FsmBasedSoccerMatchGenerator .cpp
Beinhaltet die main() Funktion. -
Generator .h .cpp
Generiert neue Spieler und deren Namen.
(Vorgabe für die Projektarbeit: Dateien lesen und Strings verarbeiten.) -
Match .h .cpp
Spielablauf und Möglichkeit, den Spielverlauf in einer Text-Datei zu speichern.
(Vorgabe für die Projektarbeit: Dateien schreiben.) -
Pitch .h .cpp
Repräsentiert das Spielfeld mit 17x11 Feldern. -
Player .h .cpp
Definiert einen Spieler und ermöglicht das Ausführen von Aktionen. -
PlayerState .h .cpp
Basisklasse aller States der Spieler. Ordnet Spieler dem passenden Feld zu. -
PlayerStateAttack .h .cpp
Beispielhafte Logik für einen angreifenden Spieler. -
PlayerStateIdle .h .cpp
Beispielhafte Logik für einen Spieler ohne Aufgabe. -
PlayerStateInteract .h .cpp
Beispielhafte Logik zur Interaktion zwischen Spielern (Zweikampf, Pass). -
PlayerStateMove .h .cpp
Beispielhafte Logik für Spieler ohne Ball, um sich auf dem Spielfeld zu bewegen. -
_functions .h
Diverse Hilfsfunktionen und Ausgabe auf der Konsole.
(Vorgabe für die Projektarbeit: Präsentation per Konsole oder GUI.)