diff --git a/Start_Linux/makefile b/Start_Linux/makefile index 096695a..a8d8f59 100644 --- a/Start_Linux/makefile +++ b/Start_Linux/makefile @@ -1,9 +1,9 @@ CC = gcc -CFLAGS = -g -Wall -I$(raylibfolder) +CFLAGS = -g -Wall LDFLAGS = -lGL -lX11 -lm BINARIES = ./linux -raylib_folder = ./raylib +raylibfolder = ./raylib unityfolder = ./unity # -------------------------- @@ -28,7 +28,7 @@ game.o: game.c $(CC) $(CFLAGS) -c game.c graphicalGame.o: graphicalGame.c - $(CC) $(CFLAGS) -c graphicalGame.c + $(CC) $(CFLAGS) -I$(raylibfolder) -c graphicalGame.c # -------------------------- # Unit Tests diff --git a/Start_Linux/unit_tests.c b/Start_Linux/unit_tests.c index d1a15f5..34b07ed 100644 --- a/Start_Linux/unit_tests.c +++ b/Start_Linux/unit_tests.c @@ -101,7 +101,37 @@ void test_createWordSalad_too_small(void) { } } +void test_createWordSalad_allWordsPlaced() { + char words[3][MAX_WORD_LEN] = {"CAT", "DOG", "MOUSE"}; + char saladHoriz[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + char saladVert[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + + int placed = createWordSalad(saladHoriz, 20, words, 3); + for(int i = 0; i < MAX_SEARCH_FIELD_LEN; i++) + { + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + saladVert[j][i] = saladHoriz[i][j]; + } + } + + for(int i = 0; i < 3; i++) { + const char* word = words[i]; + int wordFound = 0; + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + const char* row = saladHoriz[j]; + const char* col = saladVert[j]; + wordFound |= strstr(row, word) || strstr(col, word); + } + TEST_ASSERT_TRUE_MESSAGE(wordFound, "Not all words were placed."); + } + + TEST_ASSERT_EQUAL_INT(3, placed); +} + // ---------- Test Setup und TearDown Funktionen ---------- + // Hier Setup- und TearDown-Funktionen definieren, // falls Vor- und Nachbereitungen für die Tests benötigt. @@ -134,9 +164,10 @@ int main(void) { RUN_TEST(test_readWords_empty_file); RUN_TEST(test_createWordSalad_all_fit); RUN_TEST(test_createWordSalad_too_small); + RUN_TEST(test_createWordSalad_allWordsPlaced); int result = UNITY_END(); // Test-Ergebnisse print_test_result(result); return result; -} \ No newline at end of file +} diff --git a/Start_Mac/macos-x64/libraylib.a b/Start_Mac/macos-x86_64/libraylib.a similarity index 100% rename from Start_Mac/macos-x64/libraylib.a rename to Start_Mac/macos-x86_64/libraylib.a diff --git a/Start_Mac/macos-x64/libunity.a b/Start_Mac/macos-x86_64/libunity.a similarity index 100% rename from Start_Mac/macos-x64/libunity.a rename to Start_Mac/macos-x86_64/libunity.a diff --git a/Start_Mac/macos-x64/libwordsalad.a b/Start_Mac/macos-x86_64/libwordsalad.a similarity index 100% rename from Start_Mac/macos-x64/libwordsalad.a rename to Start_Mac/macos-x86_64/libwordsalad.a diff --git a/Start_Mac/macos-x64/libwordsalad_complete.a b/Start_Mac/macos-x86_64/libwordsalad_complete.a similarity index 100% rename from Start_Mac/macos-x64/libwordsalad_complete.a rename to Start_Mac/macos-x86_64/libwordsalad_complete.a diff --git a/Start_Mac/makefile b/Start_Mac/makefile index 49654ae..1d3b4a6 100644 --- a/Start_Mac/makefile +++ b/Start_Mac/makefile @@ -4,7 +4,7 @@ LDFLAGS = -framework OpenGL -framework CoreFoundation -framework CoreGraphics -f ARCH := $(shell uname -m) BINARIES = ./macos-$(ARCH) -raylib_folder = ./raylib +raylibfolder = ./raylib unityfolder = ./unity # -------------------------- @@ -43,4 +43,4 @@ test: input.o game.o unit_tests.c $(BINARIES)/libunity.a # Clean # -------------------------- clean: - rm -f *.o wordsalad + rm -f *.o wordsalad $(TEST_BIN) diff --git a/Start_Mac/unit_tests.c b/Start_Mac/unit_tests.c index 50a62cf..34b07ed 100644 --- a/Start_Mac/unit_tests.c +++ b/Start_Mac/unit_tests.c @@ -101,6 +101,35 @@ void test_createWordSalad_too_small(void) { } } +void test_createWordSalad_allWordsPlaced() { + char words[3][MAX_WORD_LEN] = {"CAT", "DOG", "MOUSE"}; + char saladHoriz[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + char saladVert[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + + int placed = createWordSalad(saladHoriz, 20, words, 3); + for(int i = 0; i < MAX_SEARCH_FIELD_LEN; i++) + { + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + saladVert[j][i] = saladHoriz[i][j]; + } + } + + for(int i = 0; i < 3; i++) { + const char* word = words[i]; + int wordFound = 0; + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + const char* row = saladHoriz[j]; + const char* col = saladVert[j]; + wordFound |= strstr(row, word) || strstr(col, word); + } + TEST_ASSERT_TRUE_MESSAGE(wordFound, "Not all words were placed."); + } + + TEST_ASSERT_EQUAL_INT(3, placed); +} + // ---------- Test Setup und TearDown Funktionen ---------- // Hier Setup- und TearDown-Funktionen definieren, @@ -135,6 +164,7 @@ int main(void) { RUN_TEST(test_readWords_empty_file); RUN_TEST(test_createWordSalad_all_fit); RUN_TEST(test_createWordSalad_too_small); + RUN_TEST(test_createWordSalad_allWordsPlaced); int result = UNITY_END(); // Test-Ergebnisse print_test_result(result); diff --git a/Start_Windows/makefile b/Start_Windows/makefile index 146a8c6..72cccb7 100644 --- a/Start_Windows/makefile +++ b/Start_Windows/makefile @@ -1,9 +1,9 @@ CC = gcc -CFLAGS = -g -Wall -I$(raylibfolder) +CFLAGS = -g -Wall LDFLAGS = -lopengl32 -lgdi32 -lwinmm BINARIES = ./windows -raylib_folder = ./raylib +raylibfolder = ./raylib unityfolder = ./unity # -------------------------- @@ -12,7 +12,6 @@ unityfolder = ./unity wordsalad_initial: $(CC) -o wordsalad_initial $(BINARIES)/libwordsalad_complete.a $(BINARIES)/libraylib.a $(LDFLAGS) - # -------------------------- # Normales Spiel bauen # -------------------------- @@ -23,13 +22,13 @@ main.o: main.c $(CC) -c $(CFLAGS) main.c input.o: input.c - $(CC) -c $(CFLAGS)input.c + $(CC) -c $(CFLAGS) input.c game.o: game.c $(CC) -c $(CFLAGS) game.c graphicalGame.o: graphicalGame.c - $(CC) -I$(raylib_folder) -c $(CFLAGS) graphicalGame.c + $(CC) -I$(raylibfolder) -c $(CFLAGS) graphicalGame.c # -------------------------- # Unit Tests diff --git a/Start_Windows/unit_tests.c b/Start_Windows/unit_tests.c index 50a62cf..34b07ed 100644 --- a/Start_Windows/unit_tests.c +++ b/Start_Windows/unit_tests.c @@ -101,6 +101,35 @@ void test_createWordSalad_too_small(void) { } } +void test_createWordSalad_allWordsPlaced() { + char words[3][MAX_WORD_LEN] = {"CAT", "DOG", "MOUSE"}; + char saladHoriz[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + char saladVert[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]; + + int placed = createWordSalad(saladHoriz, 20, words, 3); + for(int i = 0; i < MAX_SEARCH_FIELD_LEN; i++) + { + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + saladVert[j][i] = saladHoriz[i][j]; + } + } + + for(int i = 0; i < 3; i++) { + const char* word = words[i]; + int wordFound = 0; + for(int j = 0; j < MAX_SEARCH_FIELD_LEN; j++) + { + const char* row = saladHoriz[j]; + const char* col = saladVert[j]; + wordFound |= strstr(row, word) || strstr(col, word); + } + TEST_ASSERT_TRUE_MESSAGE(wordFound, "Not all words were placed."); + } + + TEST_ASSERT_EQUAL_INT(3, placed); +} + // ---------- Test Setup und TearDown Funktionen ---------- // Hier Setup- und TearDown-Funktionen definieren, @@ -135,6 +164,7 @@ int main(void) { RUN_TEST(test_readWords_empty_file); RUN_TEST(test_createWordSalad_all_fit); RUN_TEST(test_createWordSalad_too_small); + RUN_TEST(test_createWordSalad_allWordsPlaced); int result = UNITY_END(); // Test-Ergebnisse print_test_result(result);