all tests run YAYYYY

This commit is contained in:
reeceal105988 committed 2026-10-15 17:30:25 +02:00
1 parent da9cbb74ae
commit c9515f0352
3 files changed
+37 -7

No files matched your search

+36 -6
View File
@@ -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 // 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) 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 // place words randomly
int placedWords = 0; int placedWords = 0;
srand((unsigned int)time(NULL)); srand((unsigned int)time(NULL));
for (int word = 0; word < wordCount; word++) for (int word = 0; word < wordCount; word++)
{ {
// test length:
// (re-)try randomly // (re-)try randomly
int retries = searchFieldLen * 2; int retries = searchFieldLen * 2;
int placed = 0; int placed = 0;
if(strlen(words[word]) >= searchFieldLen) break;
// int vertical = rand() / (RAND_MAX / 2); // int vertical = rand() / (RAND_MAX / 2);
int vertical = 1; int vertical = 1;
while (!placed && retries > 0) while (!placed && retries > 0)
{ {
int x = rand() / (RAND_MAX / (!vertical ? searchFieldLen - 1 - strlen(words[word]) : searchFieldLen)); unsigned int x = 0;
int y = rand() / (RAND_MAX / (vertical ? searchFieldLen - 1 - strlen(words[word]) : searchFieldLen)); unsigned int y = 0;
printf("Placed %s at %d,%d\n", words[word], x, y);
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); 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) if (--retries < 1)
break; break;
@@ -44,10 +66,16 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
break; break;
else else
placedWords++; placedWords++;
// printf("Placed!\n");
} }
// fill empty spaces // 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; 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++) for (int testY = y; testY < (y + wordLen); testY++)
{ {
if (salad[testY][x] != '\0') if (salad[testY][x] != '\0') {
// printf("Besetzt!\n");
return 0; return 0;
}
} }
// if ok then put my word in // if ok then put my word in
+1 -1
View File
@@ -51,7 +51,7 @@ graphicalGame.o: $(codefolder)/graphicalGame.c
TEST_BIN = runTests TEST_BIN = runTests
test: input.o game.o $(codefolder)/unit_tests.c $(unityfolder)/unity.c 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 # Clean
# -------------------------- # --------------------------
Binary file not shown.