From e2b6e8ae5940094fc4bdf210f14cbf3dd738f4a7 Mon Sep 17 00:00:00 2001 From: moonleay Date: Sat, 7 Dec 2024 18:33:06 +0100 Subject: [PATCH] chore: translated comments to German --- main.cpp | 96 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/main.cpp b/main.cpp index 05a64e8..d12c42e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,71 +1,73 @@ #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'. +// kMaze[y][x] const vector> kMaze = { - // kMaze[y][x] {'#', '.', '.', '.', '.'}, {'#', '.', '#', '.', '.'}, {'.', 'Z', '#', '.', '.'}, {'.', '#', '#', '#', '.'}, {'.', '.', '.', '.', '.'} - // ^ player starts here (4,0) + // ^ Spieler startet hier (4,0) }; -const vector kPlayerStartPosition = {4,0}; - -/* legend - * S - player - * Z - goal - * . - empty space - * # - wall +/* Legende + * S - Spieler + * Z - Ziel + * . - Leerer Raum (begehbar) + * # - Wand */ -/// 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 + +const vector kPlayerStartPosition = {4, 0}; + +/// Bewege den Splieler um den Bewegungsvector, falls die Ziel position begehbar ist +/// @param player_pos Die aktuelle Position des Spielers +/// @param move_vector Die gewollte Bewegung +/// @return Die neue Position des Spielers vector move_player(vector player_pos, vector move_vector); -/// Check if a certain space can be moved to -/// @param target The position to check -/// @return If the position can be moved to +/// Kontrolliere, ob eine bestimmte Position begehbar ist +/// @param target Die Position, die kontrolliert werden soll +/// @return Ob die Position begehbar ist bool is_pos_free(vector target); -/// Check if a certain space can be moved to -/// @param player_pos The current player position +/// Zeige das Spielfeld in der Konsole an +/// @param player_pos Die aktuelle Position des Spielers void render_play_field(vector player_pos); int main() { - // Create player position formatted as (y, x) + // Erstelle die Spielerposition als Vector, formattiert als (y, x) vector player_pos = kPlayerStartPosition; - // Create input variable + // Erstelle eine Variable für den Input char input; - // Run the game loop + // Durchlaufe die Hauptschleife des Spiels while (true) { - // Render the play field + // Zeige dem Spieler das Spielfeld 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') { - // Goal reached! Let's celebrate! + // Ziel erreicht! Herzlichen Glückwunsch! cout << "Ziel erreicht! Herzlichen Glueckwunsch!\n"; break; } - // Get input + // Lese Eingabe des Spielers cin >> input; - // Create an empty vector to store the requested movement in + // Erstelle einen Vector mit einer Bewegung von 0 und 0 vector target_movement_vector = {0, 0}; - // Check what the player wants to do. Store the requested movement in the vector - // print messages to screen if help was requested or an unknown input was entered + // 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) { case 'w': @@ -81,28 +83,28 @@ int main() target_movement_vector = {0, 1}; break; 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"; break; 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"; break; } - // Check & apply the requested movement + // Kontrolliere gewollte Bewegung und setze sie um. player_pos = move_player(player_pos, target_movement_vector); } - // End the program + // Beende das Programm return 0; } vector move_player(vector player_pos, vector move_vector) { - // Calculate the position the player wants to move to + // Berrechne die Position, zu die der Spieler sich bewegen möchte const vector 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)) { player_pos[0] += move_vector[0]; @@ -111,33 +113,31 @@ vector move_player(vector player_pos, vector move_vector) else cout << "Bewegung nicht moeglich!\n"; - // Return the player position + // Gebe die Spielerposition zurück return player_pos; } bool is_pos_free(vector target) { 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]] == '#') - return false; // Target pos is a wall - return true; // Target pos is movable to (is not wall and not out of bounds) + return false; // Zielposition ist eine Wand + return true; // Zielposition ist betretbar (ist keine Wand und auch nicht außerhalb des Spielfeldes) } void render_play_field(const vector player_pos) { for (int i = 0; i < kMaze.size(); ++i) - { - // For every row... + { // Für jede Reihe ... for (int j = 0; j < kMaze[i].size(); ++j) - { - // ... render ... + { // ... schreibe für jedes Element ... if (i == player_pos[0] && j == player_pos[1]) - cout << "S"; // ... 'S' if it is the entry where the player is currently - else - cout << kMaze[i][j]; // ... the actual entry of the field - cout << " "; // Add space between entries + cout << "S"; // ... 'S' wenn der aktuelle Eintrag die Position des Spielers ist + else // sonst + cout << kMaze[i][j]; // ... den tatsächlichen Eintrag + 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 } }