chore: translated comments to German
This commit is contained in:
parent
c063fe626b
commit
e2b6e8ae59
1 changed files with 48 additions and 48 deletions
96
main.cpp
96
main.cpp
|
@ -1,71 +1,73 @@
|
||||||
#include "std_lib_inc.h"
|
#include "std_lib_inc.h"
|
||||||
|
|
||||||
// A program which allows you to wander across a maze using 'w','a','s' and 'd'.
|
// Ein Programm, welches dir erlaubt ein Labyrinth zu erkunden mit 'w', 'a', 's', und 'd'.
|
||||||
|
|
||||||
const vector<vector<char>> kMaze = {
|
|
||||||
// kMaze[y][x]
|
// kMaze[y][x]
|
||||||
|
const vector<vector<char>> kMaze = {
|
||||||
{'#', '.', '.', '.', '.'},
|
{'#', '.', '.', '.', '.'},
|
||||||
{'#', '.', '#', '.', '.'},
|
{'#', '.', '#', '.', '.'},
|
||||||
{'.', 'Z', '#', '.', '.'},
|
{'.', 'Z', '#', '.', '.'},
|
||||||
{'.', '#', '#', '#', '.'},
|
{'.', '#', '#', '#', '.'},
|
||||||
{'.', '.', '.', '.', '.'}
|
{'.', '.', '.', '.', '.'}
|
||||||
// ^ player starts here (4,0)
|
// ^ Spieler startet hier (4,0)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Legende
|
||||||
|
* S - Spieler
|
||||||
|
* Z - Ziel
|
||||||
|
* . - Leerer Raum (begehbar)
|
||||||
|
* # - Wand
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
const vector<int> kPlayerStartPosition = {4, 0};
|
const vector<int> kPlayerStartPosition = {4, 0};
|
||||||
|
|
||||||
/* legend
|
/// Bewege den Splieler um den Bewegungsvector, falls die Ziel position begehbar ist
|
||||||
* S - player
|
/// @param player_pos Die aktuelle Position des Spielers
|
||||||
* Z - goal
|
/// @param move_vector Die gewollte Bewegung
|
||||||
* . - empty space
|
/// @return Die neue Position des Spielers
|
||||||
* # - wall
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// Use inputs to move the player. Don't move the player, if move is illegal
|
|
||||||
/// @param player_pos The current player position
|
|
||||||
/// @param move_vector The requested move vector
|
|
||||||
/// @return The new position of the player
|
|
||||||
vector<int> move_player(vector<int> player_pos, vector<int> move_vector);
|
vector<int> move_player(vector<int> player_pos, vector<int> move_vector);
|
||||||
|
|
||||||
/// Check if a certain space can be moved to
|
/// Kontrolliere, ob eine bestimmte Position begehbar ist
|
||||||
/// @param target The position to check
|
/// @param target Die Position, die kontrolliert werden soll
|
||||||
/// @return If the position can be moved to
|
/// @return Ob die Position begehbar ist
|
||||||
bool is_pos_free(vector<int> target);
|
bool is_pos_free(vector<int> target);
|
||||||
|
|
||||||
/// Check if a certain space can be moved to
|
/// Zeige das Spielfeld in der Konsole an
|
||||||
/// @param player_pos The current player position
|
/// @param player_pos Die aktuelle Position des Spielers
|
||||||
void render_play_field(vector<int> player_pos);
|
void render_play_field(vector<int> player_pos);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
// Create player position formatted as (y, x)
|
// Erstelle die Spielerposition als Vector, formattiert als (y, x)
|
||||||
vector<int> player_pos = kPlayerStartPosition;
|
vector<int> player_pos = kPlayerStartPosition;
|
||||||
|
|
||||||
// Create input variable
|
// Erstelle eine Variable für den Input
|
||||||
char input;
|
char input;
|
||||||
|
|
||||||
// Run the game loop
|
// Durchlaufe die Hauptschleife des Spiels
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
// Render the play field
|
// Zeige dem Spieler das Spielfeld
|
||||||
render_play_field(player_pos);
|
render_play_field(player_pos);
|
||||||
|
|
||||||
// Check if the goal has been reached yet
|
// Kontrolliere, ob der Spieler schon das Ziel erreicht hat
|
||||||
if (kMaze[player_pos[0]][player_pos[1]] == 'Z')
|
if (kMaze[player_pos[0]][player_pos[1]] == 'Z')
|
||||||
{
|
{
|
||||||
// Goal reached! Let's celebrate!
|
// Ziel erreicht! Herzlichen Glückwunsch!
|
||||||
cout << "Ziel erreicht! Herzlichen Glueckwunsch!\n";
|
cout << "Ziel erreicht! Herzlichen Glueckwunsch!\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get input
|
// Lese Eingabe des Spielers
|
||||||
cin >> input;
|
cin >> input;
|
||||||
|
|
||||||
// Create an empty vector to store the requested movement in
|
// Erstelle einen Vector mit einer Bewegung von 0 und 0
|
||||||
vector<int> target_movement_vector = {0, 0};
|
vector<int> target_movement_vector = {0, 0};
|
||||||
|
|
||||||
// Check what the player wants to do. Store the requested movement in the vector
|
// Kontrolliere, was der Spieler machen möchte. Speichere die erforderte Bewegung im Bewegungsvektor.
|
||||||
// print messages to screen if help was requested or an unknown input was entered
|
// Schreibe nachrichten in die Konsole,
|
||||||
|
// wenn nach Hilfe gefragt wird oder eine unbekannte Eingabe eingegeben wurde
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case 'w':
|
case 'w':
|
||||||
|
@ -81,28 +83,28 @@ int main()
|
||||||
target_movement_vector = {0, 1};
|
target_movement_vector = {0, 1};
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
// Print help text to console
|
// Schreibe hilfsreiche Tipps in die Konsole
|
||||||
cout << "Gebe 'w', 'a', 's', oder 'd' ein zum bewegen. Gebe 'h' ein um diesen Text anzuzeigen.\n";
|
cout << "Gebe 'w', 'a', 's', oder 'd' ein zum bewegen. Gebe 'h' ein um diesen Text anzuzeigen.\n";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Target action not recognized. Print 'error' message to screen
|
// Die gewollte Aktion kenne ich nicht. Schreibe eine Fehlernachricht in die Konsole
|
||||||
cout << "Diese Eingabe kenne ich nicht. Gib 'h' ein, um eine Hilfe zu erhalten.\n";
|
cout << "Diese Eingabe kenne ich nicht. Gib 'h' ein, um eine Hilfe zu erhalten.\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check & apply the requested movement
|
// Kontrolliere gewollte Bewegung und setze sie um.
|
||||||
player_pos = move_player(player_pos, target_movement_vector);
|
player_pos = move_player(player_pos, target_movement_vector);
|
||||||
}
|
}
|
||||||
// End the program
|
// Beende das Programm
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<int> move_player(vector<int> player_pos, vector<int> move_vector)
|
vector<int> move_player(vector<int> player_pos, vector<int> move_vector)
|
||||||
{
|
{
|
||||||
// Calculate the position the player wants to move to
|
// Berrechne die Position, zu die der Spieler sich bewegen möchte
|
||||||
const vector<int> target_position = { player_pos[0] + move_vector[0], player_pos[1] + move_vector[1] };
|
const vector<int> target_position = { player_pos[0] + move_vector[0], player_pos[1] + move_vector[1] };
|
||||||
|
|
||||||
// Move player to requested position in case position is free
|
// Bewege den Spieler zu der gewollten Position, wenn diese frei ist
|
||||||
if (is_pos_free(target_position))
|
if (is_pos_free(target_position))
|
||||||
{
|
{
|
||||||
player_pos[0] += move_vector[0];
|
player_pos[0] += move_vector[0];
|
||||||
|
@ -111,33 +113,31 @@ vector<int> move_player(vector<int> player_pos, vector<int> move_vector)
|
||||||
else
|
else
|
||||||
cout << "Bewegung nicht moeglich!\n";
|
cout << "Bewegung nicht moeglich!\n";
|
||||||
|
|
||||||
// Return the player position
|
// Gebe die Spielerposition zurück
|
||||||
return player_pos;
|
return player_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_pos_free(vector<int> target)
|
bool is_pos_free(vector<int> target)
|
||||||
{
|
{
|
||||||
if (target[1] < 0 || target[0] < 0 || target[1] > kMaze.size() - 1 || target[0] > kMaze[target[1]].size() - 1)
|
if (target[1] < 0 || target[0] < 0 || target[1] > kMaze.size() - 1 || target[0] > kMaze[target[1]].size() - 1)
|
||||||
return false; // Target pos out of bounds of area
|
return false; // Zielposition ist außerhalb des Spielfelds
|
||||||
if (kMaze[target[0]][target[1]] == '#')
|
if (kMaze[target[0]][target[1]] == '#')
|
||||||
return false; // Target pos is a wall
|
return false; // Zielposition ist eine Wand
|
||||||
return true; // Target pos is movable to (is not wall and not out of bounds)
|
return true; // Zielposition ist betretbar (ist keine Wand und auch nicht außerhalb des Spielfeldes)
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_play_field(const vector<int> player_pos)
|
void render_play_field(const vector<int> player_pos)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < kMaze.size(); ++i)
|
for (int i = 0; i < kMaze.size(); ++i)
|
||||||
{
|
{ // Für jede Reihe ...
|
||||||
// For every row...
|
|
||||||
for (int j = 0; j < kMaze[i].size(); ++j)
|
for (int j = 0; j < kMaze[i].size(); ++j)
|
||||||
{
|
{ // ... schreibe für jedes Element ...
|
||||||
// ... render ...
|
|
||||||
if (i == player_pos[0] && j == player_pos[1])
|
if (i == player_pos[0] && j == player_pos[1])
|
||||||
cout << "S"; // ... 'S' if it is the entry where the player is currently
|
cout << "S"; // ... 'S' wenn der aktuelle Eintrag die Position des Spielers ist
|
||||||
else
|
else // sonst
|
||||||
cout << kMaze[i][j]; // ... the actual entry of the field
|
cout << kMaze[i][j]; // ... den tatsächlichen Eintrag
|
||||||
cout << " "; // Add space between entries
|
cout << " "; // Füge ein Leerzeichen zwischen den Einträgen hinzu
|
||||||
}
|
}
|
||||||
cout << "\n"; // Finish the row by ending the actively drawn line
|
cout << "\n"; // Beende die Reihe mit einem Zeilenumbruch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue