diff --git a/.gitignore b/.gitignore index 6908172..b7aac8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ wordsalad_initial game.o input.o -runTests \ No newline at end of file +runTests +main.o +graphicalGame.o +wordsalad +wordsalad_initial.exe +runTests.exe \ No newline at end of file diff --git a/Start_Linux/game.c b/Start_Linux/game.c index d8cc133..fdd03ca 100644 --- a/Start_Linux/game.c +++ b/Start_Linux/game.c @@ -13,11 +13,48 @@ // Creates the word salad by placing words randomly and filling empty spaces int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount) { + // set seed for random number generator + srand(time(NULL)); + int r, c; + + //Gesamtes Feld auf 0 setzen + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + salad [r][c] = EMPTY_CHAR; + } + } + + //Wörter zufällig horizontal oder vertikal platzieren + enum Richtung {HORIZONTAL,VERTIKAL}; //0;1 + enum Richtung dir; + dir = (rand() % 2 == 0) ? HORIZONTAL : VERTIKAL; + //Schleife, die das Setzen für alle Wörter durchführt, Zufällig horizontal(0) oder vertikal(1), an zufällige Stelle + //Prüfen, ob das Wort von der Länge her ins Feld passt + + + //Felder, in denen keine Wörter stehen, werden mit zufälligen Buchstaben befüllt + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + if (salad[r][c] == EMPTY_CHAR) { + salad [r][c] = 'A' + (rand()% 26); + } + } + } + + return 0; } // Prints the word salad to console void showWordSalad(const char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen) { + int r, c; + //Ausgabe des gesamten Feldes + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + printf("%c ", salad[r][c]); + } + printf("\n"); + } } diff --git a/Start_Linux/linux/libraylib.a b/Start_Linux/linux/libraylib.a index bdc65fc..1f20160 100644 Binary files a/Start_Linux/linux/libraylib.a and b/Start_Linux/linux/libraylib.a differ diff --git a/Start_Linux/main.c b/Start_Linux/main.c index 03da755..cbfdaf5 100644 --- a/Start_Linux/main.c +++ b/Start_Linux/main.c @@ -12,7 +12,7 @@ int main(int argc, char *argv[]) int exitCode = EXIT_SUCCESS; // Check if the correct number of arguments is provided - if(argc != 2) + if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); exitCode = EXIT_FAILURE; @@ -24,7 +24,7 @@ int main(int argc, char *argv[]) FILE *file = fopen(argv[1], "r"); - if(file != NULL) + if (file != NULL) { unsigned int placedWords = 0; char wordSalad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; // 2D array to store the word salad @@ -36,11 +36,18 @@ int main(int argc, char *argv[]) // Create the word salad by placing words into grid placedWords = createWordSalad(wordSalad, SALAD_SIZE, words, wordCount); - // TODO: // Check if all words were successfully placed // Start the game if successful // error message if some words couldn't be placed + if (placedWords < wordCount) + { + fprintf(stderr, "some words couldn't be placed\n"); + exitCode = EXIT_FAILURE; + } + + // TODO: + // Start the game if successful } else { diff --git a/Start_Windows/game.c b/Start_Windows/game.c index d8cc133..36a7c7f 100644 --- a/Start_Windows/game.c +++ b/Start_Windows/game.c @@ -13,11 +13,48 @@ // Creates the word salad by placing words randomly and filling empty spaces int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount) { + // set seed for random number generator + srand(time(NULL)); + int r, c, placedWords=0; + + //Gesamtes Feld auf 0 setzen, am besten in eigene Fkt, dann aber extra Tests dafür erstellen + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + salad [r][c] = EMPTY_CHAR; + } + } + + //Wörter zufällig horizontal oder vertikal platzieren + enum Richtung {HORIZONTAL,VERTIKAL}; //0;1 + enum Richtung dir; + dir = (rand() % 2 == 0) ? HORIZONTAL : VERTIKAL; + //Schleife, die das Setzen für alle Wörter durchführt, Zufällig horizontal(0) oder vertikal(1), an zufällige Stelle + //Prüfen, ob das Wort von der Länge her ins Feld passt + + + //Felder, in denen keine Wörter stehen, werden mit zufälligen Buchstaben befüllt, am besten in eigene Fkt, dann aber extra Tests dafür erstellen + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + if (salad[r][c] == EMPTY_CHAR) { + salad [r][c] = 'A' + (rand()% 26); + } + } + } + //return "Anzahl platzierter Wörter", wird in Main dann mit soll verglichen + return placedWords; } // Prints the word salad to console void showWordSalad(const char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen) { + int r, c; + //Ausgabe des gesamten Feldes + for (r=0; r < searchFieldLen; r++) { + for (c=0; c < searchFieldLen; c++) { + printf("%c ", salad[r][c]); + } + printf("\n"); + } } diff --git a/Start_Windows/main.c b/Start_Windows/main.c index 03da755..cbfdaf5 100644 --- a/Start_Windows/main.c +++ b/Start_Windows/main.c @@ -12,7 +12,7 @@ int main(int argc, char *argv[]) int exitCode = EXIT_SUCCESS; // Check if the correct number of arguments is provided - if(argc != 2) + if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); exitCode = EXIT_FAILURE; @@ -24,7 +24,7 @@ int main(int argc, char *argv[]) FILE *file = fopen(argv[1], "r"); - if(file != NULL) + if (file != NULL) { unsigned int placedWords = 0; char wordSalad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; // 2D array to store the word salad @@ -36,11 +36,18 @@ int main(int argc, char *argv[]) // Create the word salad by placing words into grid placedWords = createWordSalad(wordSalad, SALAD_SIZE, words, wordCount); - // TODO: // Check if all words were successfully placed // Start the game if successful // error message if some words couldn't be placed + if (placedWords < wordCount) + { + fprintf(stderr, "some words couldn't be placed\n"); + exitCode = EXIT_FAILURE; + } + + // TODO: + // Start the game if successful } else {