diff --git a/Minesweeper/Core/Src/spielfeld.c b/Minesweeper/Core/Src/spielfeld.c index 785adf9..b700804 100644 --- a/Minesweeper/Core/Src/spielfeld.c +++ b/Minesweeper/Core/Src/spielfeld.c @@ -7,7 +7,16 @@ #include "spielfeld.h" #include "main.h" - +/* + * Beschreibung: + * Diese Funktion generiert ein Spielfeld mit der angegebenen Größe und initialisiert alle Zellen als leere Zellen. + * + * Parameter: + * size: Die Größe des Spielfelds (Anzahl der Zeilen/Spalten). + * + * Rückgabewert: + * Zeiger auf das erstellte Spielfeld (int**). + */ int** generateGameBoard(int size) { // Speicher für das Spielfeld reservieren int** gameBoard = (int**)malloc(size * sizeof(int*)); @@ -25,12 +34,28 @@ int** generateGameBoard(int size) { return gameBoard; } +/* + * Beschreibung: + * Diese Funktion generiert eine zufällige ganze Zahl mithilfe des HAL-RNG-Moduls. + * + * Rückgabewert: + * Eine zufällige ganze Zahl (uint32_t). + */ uint32_t random_int(void) { uint32_t z; HAL_RNG_GenerateRandomNumber(&hrng, &z); return z; } +/* + * Beschreibung: + * Diese Funktion platziert die Bomben zufällig auf dem Spielfeld und berechnet dann die Anzahl der umliegenden Bomben für jede Zelle. + * + * Parameter: + * gameBoard: Das Spielfeld, auf dem die Bomben platziert werden sollen. + * size: Die Größe des Spielfelds. + * numBombs: Die Anzahl der Bomben, die platziert werden sollen. + */ void placeBombs(int** gameBoard, int size, int numBombs) { // Zufälligen Seed initialisieren srand(random_int()); @@ -72,6 +97,16 @@ void placeBombs(int** gameBoard, int size, int numBombs) { } } +/* + * Beschreibung: + * Diese Funktion zeigt das Spielfeld auf der UART-Schnittstelle an. + * + * Parameter: + * gameBoard: Das Spielfeld, das angezeigt werden soll. + * size: Die Größe des Spielfelds. + * numBombs: Die Gesamtanzahl der Bomben auf dem Spielfeld. + * numFlags: Die Anzahl der Flaggen, die auf dem Spielfeld platziert wurden. + */ void displayGameBoardUART(int** gameBoard, int size, int numBombs, int numFlags) { // Leere den Empfangspuffer der UART-Schnittstelle clearSerialBuffer(&huart2); @@ -115,6 +150,10 @@ void displayGameBoardUART(int** gameBoard, int size, int numBombs, int numFlags) HAL_UART_Transmit(&huart2, (uint8_t*)buffer, offset, 100); } +/* + * Werden nicht benutzt + * + */ void freeGameBoard(int** gameBoard, int size) { for (int i = 0; i < size; i++) { free(gameBoard[i]); @@ -122,6 +161,10 @@ void freeGameBoard(int** gameBoard, int size) { free(gameBoard); } +/* + * Werden nicht benutzt + * + */ void freeHiddenGameBoard(int** hiddenGameBoard, int size) { for (int i = 0; i < size; i++) { free(hiddenGameBoard[i]); @@ -129,6 +172,17 @@ void freeHiddenGameBoard(int** hiddenGameBoard, int size) { free(hiddenGameBoard); } +/* + * Beschreibung: + * Diese Funktion erstellt ein verdecktes Spielfeld mit der angegebenen Größe. + * + * Parameter: + * gameBoard: Das Spielfeld, für das ein verdecktes Spielfeld erstellt werden soll. + * size: Die Größe des Spielfelds. + * + * Rückgabewert: + * Ein Zeiger auf das erstellte verdeckte Spielfeld (int**). + */ int** createHiddenGameBoard(int** gameBoard, int size) { int** hiddenGameBoard = (int**)malloc(size * sizeof(int*)); for (int i = 0; i < size; i++) {