epr24pr3_ojanssen2_dummed_d.../main.cpp

77 lines
2.4 KiB
C++
Raw Normal View History

2024-12-02 17:47:09 +01:00
#include "std_lib_inc.h"
#include "Player.h"
#include "PositionVector.h"
// #include "Maze.h"
// Muss nicht inkludiert werden, da es schon in Player.h inkludiert wird
2024-12-02 17:47:09 +01:00
using game::Player;
using game::PositionVector;
using game::Maze;
2024-12-02 17:47:09 +01:00
// Ein Programm, welches dir erlaubt ein Labyrinth zu erkunden mit 'w', 'a', 's', und 'd'.
const vector<int> player_start_position = {4, 0};
2024-12-02 17:47:09 +01:00
int main()
2024-12-02 17:47:09 +01:00
{
const Maze maze = Maze();
// Erstelle einen Spieler mit der gegebenen start position
Player player = Player(player_start_position[1], player_start_position[0]);
// Erstelle eine Variable für den Input
char input;
2024-12-02 17:47:09 +01:00
// Durchlaufe die Hauptschleife des Spiels
while (true)
2024-12-02 17:47:09 +01:00
{
// Zeige dem Spieler das Spielfeld
maze.render(player.get_pos());
// Kontrolliere, ob der Spieler schon das Ziel erreicht hat
if (maze.is_player_at_goal(player.get_pos()))
2024-12-02 17:47:09 +01:00
{
// Ziel erreicht! Herzlichen Glückwunsch!
cout << "Ziel erreicht! Herzlichen Glueckwunsch!\n";
break;
2024-12-02 17:47:09 +01:00
}
// Lese Eingabe des Spielers
cin >> input;
2024-12-02 17:47:09 +01:00
// Erstelle einen Vector mit einer Bewegung von 0 und 0
PositionVector movement_vector = PositionVector(0,0);
2024-12-02 17:47:09 +01:00
// Kontrolliere, was der Spieler machen möchte. Speichere die erforderte Bewegung im Bewegungsvektor.
// Schreibe nachrichten in die Konsole,
// wenn nach Hilfe gefragt wird oder eine unbekannte Eingabe eingegeben wurde
switch (input)
{
2024-12-02 17:47:09 +01:00
case 'w':
movement_vector.update(0, -1);
break;
2024-12-02 17:47:09 +01:00
case 'a':
movement_vector.update(-1, 0);
break;
case 's':
movement_vector.update(0, 1);
break;
2024-12-02 17:47:09 +01:00
case 'd':
movement_vector.update(1, 0);
break;
2024-12-02 17:47:09 +01:00
case 'h':
// Schreibe hilfsreiche Tipps in die Konsole
cout << "Gebe 'w', 'a', 's', oder 'd' ein zum bewegen. Gebe 'h' ein um diesen Text anzuzeigen.\n";
2024-12-02 17:47:09 +01:00
break;
default:
// Die gewollte Aktion kenne ich nicht. Schreibe eine Fehlernachricht in die Konsole
2024-12-02 17:47:09 +01:00
cout << "Diese Eingabe kenne ich nicht. Gib 'h' ein, um eine Hilfe zu erhalten.\n";
break;
}
// Kontrolliere gewollte Bewegung und setze sie um.
player.move(maze, movement_vector);
}
// Beende das Programm
2024-12-02 17:47:09 +01:00
return 0;
}