diff --git a/Startcode/game.c b/Startcode/game.c index b9d2e9c..e1332da 100644 --- a/Startcode/game.c +++ b/Startcode/game.c @@ -1,12 +1,10 @@ -#include "game.h" - #include "game.h" #include #include #include -#define MAX_ATTEMPTS 100 -#define EMPTY_CHAR '\0' +#define MAX_ATTEMPTS 10 +#define EMPTY_CHAR 0 typedef enum { @@ -21,15 +19,7 @@ int createWordSalad( const char words[][MAX_WORD_LEN], unsigned int wordCount) { - /* Spielfeldgroesse pruefen */ - if (searchFieldLen == 0 || - searchFieldLen > MAX_SEARCH_FIELD_LEN) - { - return 0; - } - int placedWords = 0; - /* Alle Felder initialisieren */ for (unsigned int i = 0; i < searchFieldLen; i++) { @@ -39,16 +29,16 @@ int createWordSalad( } } - /* Richtungsvektoren */ + // Richtungsvektoren int dx[] = {1, 0}; int dy[] = {0, 1}; - /* Alle Woerter durchlaufen */ + // Alle Woerter durchlaufen for (unsigned int w = 0; w < wordCount; w++) { size_t wordLen = strlen(words[w]); - /* Leere oder zu lange Woerter ueberspringen */ + //Leere oder zu lange Woerter ueberspringen if (wordLen == 0 || wordLen > searchFieldLen) { continue; @@ -64,31 +54,30 @@ int createWordSalad( /* Zufallsrichtung bestimmen */ Direction dir = rand() % 2; - unsigned int row; - unsigned int col; + unsigned int Zeile; + unsigned int Spalte; /* Zufallsposition so waehlen, dass das Wort hineinpasst */ if (dir == HORIZONTAL) { - row = rand() % searchFieldLen; - col = rand() % (searchFieldLen - wordLen + 1); + Zeile = rand() % searchFieldLen; + Spalte = rand() % (searchFieldLen - wordLen + 1); } else { - row = rand() % (searchFieldLen - wordLen + 1); - col = rand() % searchFieldLen; + Zeile = rand() % (searchFieldLen - wordLen + 1); + Spalte = rand() % searchFieldLen; } int collision = 0; - /* Pruefen, ob die Position geeignet ist */ + // Pruefen, ob die Position geeignet ist (cillision mit anderen Wörtern) for (size_t i = 0; i < wordLen; i++) { - unsigned int z = row + dy[dir] * i; - unsigned int s = col + dx[dir] * i; + unsigned int z = Zeile + dy[dir] * i; + unsigned int s = Spalte + dx[dir] * i; - char letter = - (char)toupper((unsigned char)words[w][i]); + char letter = words[w][i]; if (salad[z][s] != EMPTY_CHAR && salad[z][s] != letter) @@ -98,16 +87,15 @@ int createWordSalad( } } - /* Wenn keine Kollision besteht, Wort eintragen */ + // Wenn keine collision besteht wort eintragen if (!collision) { for (size_t i = 0; i < wordLen; i++) { - unsigned int z = row + dy[dir] * i; - unsigned int s = col + dx[dir] * i; + unsigned int z = Zeile + dy[dir] * i; + unsigned int s = Spalte + dx[dir] * i; - salad[z][s] = - (char)toupper((unsigned char)words[w][i]); + salad[z][s] = words[w][i]; } placed = 1; @@ -116,17 +104,17 @@ int createWordSalad( } } - /* Leere Felder mit zufaelligen Buchstaben fuellen */ + // Leere Felder mit zufaelligen Buchstaben fuellen for (unsigned int i = 0; i < searchFieldLen; i++) { for (unsigned int j = 0; j < searchFieldLen; j++) { if (salad[i][j] == EMPTY_CHAR) { - salad[i][j] = (char)('A' + rand() % 26); + salad[i][j] ='A' + (rand() % 26);// 26 Buchstaben insgesammt } } } return placedWords; -} +} \ No newline at end of file