all documentations

master
thunic 2 years ago
parent efbaf1c7b5
commit 60ed130d5f

@ -205,6 +205,17 @@ void getNewPosition(Position* pos, int dx, int dy, Position* newPos) {
newPos->row = pos->row + dx; newPos->row = pos->row + dx;
} }
/*
* Beschreibung:
* Diese Funktion deckt rekursiv alle leeren Zellen und ihre benachbarten leeren Zellen auf.
*
* Parameter:
* gameBoard: Das Spielfeld, auf dem die Operation ausgeführt wird.
* hiddenGameBoard: Das verdeckte Spielfeld, das aktualisiert wird.
* size: Die Größe des Spielfelds.
* pos: Die Position der aktuellen Zelle, die aufgedeckt wird.
*/
void revealEmptyCells(int** gameBoard, int** hiddenGameBoard, int size, Position pos) { void revealEmptyCells(int** gameBoard, int** hiddenGameBoard, int size, Position pos) {
// Aufdecken der leeren Zelle // Aufdecken der leeren Zelle
hiddenGameBoard[pos.row][pos.col] = gameBoard[pos.row][pos.col]; hiddenGameBoard[pos.row][pos.col] = gameBoard[pos.row][pos.col];
@ -227,7 +238,21 @@ void revealEmptyCells(int** gameBoard, int** hiddenGameBoard, int size, Position
} }
} }
} }
/*
* Beschreibung:
* Diese Funktion deckt eine bestimmte Zelle auf dem Spielfeld auf und aktualisiert das verdeckte Spielfeld entsprechend.
*
* Parameter:
* gameBoard: Das Spielfeld, auf dem die Operation ausgeführt wird.
* hiddenGameBoard: Das verdeckte Spielfeld, das aktualisiert wird.
* size: Die Größe des Spielfelds.
* row: Die Zeilennummer der aufzudeckenden Zelle.
* col: Die Spaltennummer der aufzudeckenden Zelle.
*
* Rückgabewert:
* 1, wenn die Zelle erfolgreich aufgedeckt wurde.
* 0, wenn die Zelle eine Bombe war und das Spiel dadurch verloren wurde.
*/
int revealCell(int** gameBoard, int** hiddenGameBoard, int size, int row, int col) { int revealCell(int** gameBoard, int** hiddenGameBoard, int size, int row, int col) {
Position pos; Position pos;
pos.row = row; pos.row = row;
@ -266,6 +291,16 @@ int revealCell(int** gameBoard, int** hiddenGameBoard, int size, int row, int co
return 1; return 1;
} }
/*
* Beschreibung:
* Diese Funktion platziert oder entfernt eine Flagge auf einer bestimmten Zelle des verdeckten Spielfelds.
*
* Parameter:
* hiddenGameBoard: Das verdeckte Spielfeld, auf dem die Operation ausgeführt wird.
* row: Die Zeilennummer der Zelle, auf der die Flagge platziert/entfernt werden soll.
* col: Die Spaltennummer der Zelle, auf der die Flagge platziert/entfernt werden soll.
* numFlags: Ein Zeiger auf die Anzahl der Flaggen auf dem Spielfeld.
*/
void setFlag(int** hiddenGameBoard, int row, int col, int* numFlags) { void setFlag(int** hiddenGameBoard, int row, int col, int* numFlags) {
if (hiddenGameBoard[row][col] == FLAG_CELL) if (hiddenGameBoard[row][col] == FLAG_CELL)
{ {
@ -279,6 +314,21 @@ void setFlag(int** hiddenGameBoard, int row, int col, int* numFlags) {
} }
} }
/*
* Beschreibung:
* Diese Funktion überprüft, ob das Spiel gewonnen wurde, indem sie prüft, ob alle Bomben markiert wurden und alle nicht-Bomben-Zellen aufgedeckt sind.
*
* Parameter:
* gameBoard: Das Spielfeld mit den Bomben.
* hiddenGameBoard: Das verdeckte Spielfeld.
* size: Die Größe des Spielfelds.
* numBombs: Die Anzahl der Bomben auf dem Spielfeld.
* numFlags: Die Anzahl der Flaggen auf dem Spielfeld.
*
* Rückgabewert:
* 1, wenn das Spiel gewonnen wurde.
* 0, wenn das Spiel noch nicht gewonnen wurde.
*/
int checkWin(int** gameBoard, int** hiddenGameBoard, int size, int numBombs, int numFlags) { int checkWin(int** gameBoard, int** hiddenGameBoard, int size, int numBombs, int numFlags) {
// Überprüfen, ob alle Bombenpositionen mit einer Flagge markiert wurden // Überprüfen, ob alle Bombenpositionen mit einer Flagge markiert wurden
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
@ -308,6 +358,10 @@ int checkWin(int** gameBoard, int** hiddenGameBoard, int size, int numBombs, int
} }
} }
/*
* Beschreibung:
* Diese Funktion gibt eine Meldung aus, dass das Spiel verloren wurde, da eine Bombe explodiert ist. *
*/
void handleBombExploded() { void handleBombExploded() {
char message[] = "Spiel Verloren! Du hast eine Bombe getroffen!\r\nStarte neu mit der ON Taste. \r\n"; char message[] = "Spiel Verloren! Du hast eine Bombe getroffen!\r\nStarte neu mit der ON Taste. \r\n";
HAL_UART_Transmit(&huart2, (uint8_t*)message, sizeof(message), 100); HAL_UART_Transmit(&huart2, (uint8_t*)message, sizeof(message), 100);

Loading…
Cancel
Save