From c9515f03526ea742b67c1850825dabc94e95c836 Mon Sep 17 00:00:00 2001 From: Alexander Reece Date: Thu, 15 Oct 2026 17:30:25 +0200 Subject: [PATCH] all tests run YAYYYY --- Startcode/game.c | 44 +++++++++++++++++++++++++++++++++++++------- Startcode/makefile | 2 +- Startcode/runTests | Bin 39944 -> 61176 bytes 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/Startcode/game.c b/Startcode/game.c index 1cd98c7..0f6d423 100644 --- a/Startcode/game.c +++ b/Startcode/game.c @@ -16,25 +16,47 @@ int tryPlaceHorizontal(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], u // 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) { + // initialise with '\0' + for (int x = MAX_SEARCH_FIELD_LEN - 1; x >= 0; --x) { + for (int y = MAX_SEARCH_FIELD_LEN - 1; y >= 0; --y) { + salad[x][y] = '\0'; + } + } + // place words randomly int placedWords = 0; srand((unsigned int)time(NULL)); for (int word = 0; word < wordCount; word++) { + // test length: // (re-)try randomly int retries = searchFieldLen * 2; int placed = 0; - + if(strlen(words[word]) >= searchFieldLen) break; + // int vertical = rand() / (RAND_MAX / 2); int vertical = 1; while (!placed && retries > 0) { - int x = rand() / (RAND_MAX / (!vertical ? searchFieldLen - 1 - strlen(words[word]) : searchFieldLen)); - int y = rand() / (RAND_MAX / (vertical ? searchFieldLen - 1 - strlen(words[word]) : searchFieldLen)); - printf("Placed %s at %d,%d\n", words[word], x, y); + unsigned int x = 0; + unsigned int y = 0; + + if (vertical) { + int max_x = searchFieldLen - 1; + int max_y = searchFieldLen - 1 - strlen(words[word]); + x = rand() / (RAND_MAX / max_x); + y = rand() / (RAND_MAX / max_y); + } else { + int max_x = searchFieldLen - 1 - strlen(words[word]); + int max_y = searchFieldLen - 1; + x = rand() / (RAND_MAX / max_x); + y = rand() / (RAND_MAX / max_y); + } + + // printf("Placing %s at %d,%d\n", words[word], x, y); placed = tryPlaceVertical(salad, searchFieldLen, words[word], x, y); - if (placed) printf("Placed %s at %d,%d!\n", words[word], x, y); + // if (placed) printf("Placed %s at %d,%d!\n", words[word], x, y); if (--retries < 1) break; @@ -44,10 +66,16 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi break; else placedWords++; - // printf("Placed!\n"); } // fill empty spaces + for (int x = searchFieldLen - 1; x >= 0; --x) { + for (int y = searchFieldLen - 1; y >= 0; --y) { + if (salad[x][y] == '\0') { + salad[x][y] = 'A' + (rand() / (RAND_MAX / 26)); + } + } + } return placedWords; } @@ -59,8 +87,10 @@ int tryPlaceVertical(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], uns for (int testY = y; testY < (y + wordLen); testY++) { - if (salad[testY][x] != '\0') + if (salad[testY][x] != '\0') { + // printf("Besetzt!\n"); return 0; + } } // if ok then put my word in diff --git a/Startcode/makefile b/Startcode/makefile index 7246e47..d7cddda 100644 --- a/Startcode/makefile +++ b/Startcode/makefile @@ -51,7 +51,7 @@ graphicalGame.o: $(codefolder)/graphicalGame.c TEST_BIN = runTests test: input.o game.o $(codefolder)/unit_tests.c $(unityfolder)/unity.c - $(CC) -Wall -I$(unityfolder) -o $(TEST_BIN) input.o game.o $(codefolder)/unit_tests.c $(unityfolder)/unity.c + $(CC) -Wall -g -I$(unityfolder) -o $(TEST_BIN) input.o game.o $(codefolder)/unit_tests.c $(unityfolder)/unity.c # -------------------------- # Clean # -------------------------- diff --git a/Startcode/runTests b/Startcode/runTests index 5e2cbdb798a8d47a290111ba1465d360dfa47bde..11800737d7aafd06711d8cdd78083c7f220b1731 100755 GIT binary patch literal 61176 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 ToVp|Y`kS{GhCX~5R`GuUKseR( literal 39944 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