diff --git a/Startcode/game.c b/Startcode/game.c index 0f6d423..41a9163 100644 --- a/Startcode/game.c +++ b/Startcode/game.c @@ -34,8 +34,8 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi int placed = 0; if(strlen(words[word]) >= searchFieldLen) break; - // int vertical = rand() / (RAND_MAX / 2); - int vertical = 1; + int vertical = rand() / (RAND_MAX / 2); + // int vertical = 0; while (!placed && retries > 0) { unsigned int x = 0; @@ -54,7 +54,10 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } // printf("Placing %s at %d,%d\n", words[word], x, y); - placed = tryPlaceVertical(salad, searchFieldLen, words[word], x, y); + if (vertical) + placed = tryPlaceVertical(salad, searchFieldLen, words[word], x, y); + else + placed = tryPlaceHorizontal(salad, searchFieldLen, words[word], x, y); // if (placed) printf("Placed %s at %d,%d!\n", words[word], x, y); @@ -103,6 +106,20 @@ int tryPlaceVertical(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], uns int tryPlaceHorizontal(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char word[], unsigned int x, unsigned int y) { - // TODO; + int wordLen = strlen(word); + + for (int testX = x; testX < (x + wordLen); testX++) + { + if (salad[y][testX] != '\0') { + // printf("Besetzt!\n"); + return 0; + } + } + + // if ok then put my word in + for (int placeChar = 0; placeChar < wordLen; placeChar++) + { + salad[y][x + placeChar] = word[placeChar]; + } return 1; } \ No newline at end of file