diff --git a/Start_Mac/input.c b/Start_Mac/input.c index ed77805..8e1ec62 100644 --- a/Start_Mac/input.c +++ b/Start_Mac/input.c @@ -2,11 +2,37 @@ #include #include +#define MAX_BUFFER_LEN 256 + // TODO: // eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei (words.txt) einliest und als C-String zurückgibt. // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { +char buffer[MAX_BUFFER_LEN]; + int count = 0; + char *teiler = ".,; !?\n"; + if(file == NULL) + { + printf("Fehler beim Öffnen von words.txt!\n"); + return -1; + } + + while(fgets(buffer, MAX_LINE_LEN, file)) + { + const char *wort = strtok(buffer, teiler); + + while(wort != NULL && count < maxWordCount) + { + strncpy(words[count], wort, MAX_WORD_LEN-1); + words[count][MAX_WORD_LEN-1] = '\0'; + count++; + + wort = strtok(NULL, teiler); + } + } + + return count; } \ No newline at end of file diff --git a/Start_Mac/main.c b/Start_Mac/main.c index 03da755..77dcc26 100644 --- a/Start_Mac/main.c +++ b/Start_Mac/main.c @@ -7,6 +7,13 @@ #define MAX_NUMBER_OF_WORDS 100 #define SALAD_SIZE 20 +// selbstgeschriebene Definitionen: +// annahmen ist das windowWidth in pixeln gegeben +// werden muss, da auch andere funktionen wie +// createCharSquarePanel in Pixeln arbeiten +#define WINDOW_WIDTH 800 + + int main(int argc, char *argv[]) { int exitCode = EXIT_SUCCESS; @@ -36,10 +43,24 @@ int main(int argc, char *argv[]) // Create the word salad by placing words into grid placedWords = createWordSalad(wordSalad, SALAD_SIZE, words, wordCount); - // TODO: + // DONE: // Check if all words were successfully placed // Start the game if successful // error message if some words couldn't be placed + if (placedWords != wordCount) + { + // selbe error message wird auch von wordsalad_inital.exe ausgegeben, + // wenn diese einen fehler produziert + printf("Could only place %d of %d words.", placedWords, wordCount); + printf(" Possible solution is to choose a larger search field ...\n"); + } + else + { + // annahme: windowWidth wird in Pixeln gesucht, + // da auch andere funktionen, wie createCharSquarePanel + // in Pixeln arbeiten + startGame(wordSalad, SALAD_SIZE, words, placedWords, WINDOW_WIDTH); + } } else