diff --git a/build-project.sh b/build-project.sh index f96d181..4a4d88d 100644 --- a/build-project.sh +++ b/build-project.sh @@ -1,4 +1,2 @@ #!/bin/bash -./duellist-spielesammlung-projekt.exe -cd duellist-spielesammlung-projekt ceedling test:all \ No newline at end of file diff --git a/build/test/cache/defines_dependency.yml b/build/test/cache/defines_dependency.yml new file mode 100644 index 0000000..2fbf0ff --- /dev/null +++ b/build/test/cache/defines_dependency.yml @@ -0,0 +1 @@ +--- {} diff --git a/build/test/cache/input.yml b/build/test/cache/input.yml index eefbd61..86819f6 100644 --- a/build/test/cache/input.yml +++ b/build/test/cache/input.yml @@ -23,12 +23,12 @@ :artifacts: [] :paths: :test: - - "+:test/**" - - "-:test/support" + - "+:src/test/**" + - "-:src/test/support" :source: - - src/** + - src/main/** :support: - - test/support + - src/test/support :include: [] :libraries: [] :test_toolchain_include: [] diff --git a/build/test/cache/test_duellist_spielesammlung_projekt.c b/build/test/cache/test_duellist_spielesammlung_projekt.c new file mode 100644 index 0000000..e69de29 diff --git a/build/test/dependencies/cmock.d b/build/test/dependencies/cmock.d new file mode 100644 index 0000000..bdf4cc9 --- /dev/null +++ b/build/test/dependencies/cmock.d @@ -0,0 +1,6 @@ +build/test/out/c/cmock.o: \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/force_build b/build/test/dependencies/force_build new file mode 100644 index 0000000..e69de29 diff --git a/build/test/dependencies/test_duellist_spielesammlung_projekt.d b/build/test/dependencies/test_duellist_spielesammlung_projekt.d new file mode 100644 index 0000000..598e388 --- /dev/null +++ b/build/test/dependencies/test_duellist_spielesammlung_projekt.d @@ -0,0 +1,2 @@ +build/test/out/c/test_duellist_spielesammlung_projekt.o: \ + src/test/test_duellist_spielesammlung_projekt.c diff --git a/build/test/dependencies/test_duellist_spielesammlung_projekt_runner.d b/build/test/dependencies/test_duellist_spielesammlung_projekt_runner.d new file mode 100644 index 0000000..e503cf2 --- /dev/null +++ b/build/test/dependencies/test_duellist_spielesammlung_projekt_runner.d @@ -0,0 +1,4 @@ +build/test/out/c/test_duellist_spielesammlung_projekt_runner.o: \ + build/test/runners/test_duellist_spielesammlung_projekt_runner.c \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/unity.d b/build/test/dependencies/unity.d new file mode 100644 index 0000000..0baf56c --- /dev/null +++ b/build/test/dependencies/unity.d @@ -0,0 +1,4 @@ +build/test/out/c/unity.o: \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.c \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/out/c/cmock.o b/build/test/out/c/cmock.o new file mode 100644 index 0000000..5e8344b Binary files /dev/null and b/build/test/out/c/cmock.o differ diff --git a/build/test/out/c/test_duellist_spielesammlung_projekt.o b/build/test/out/c/test_duellist_spielesammlung_projekt.o new file mode 100644 index 0000000..61d37cc Binary files /dev/null and b/build/test/out/c/test_duellist_spielesammlung_projekt.o differ diff --git a/build/test/out/c/test_duellist_spielesammlung_projekt_runner.o b/build/test/out/c/test_duellist_spielesammlung_projekt_runner.o new file mode 100644 index 0000000..70dfa74 Binary files /dev/null and b/build/test/out/c/test_duellist_spielesammlung_projekt_runner.o differ diff --git a/build/test/out/c/unity.o b/build/test/out/c/unity.o new file mode 100644 index 0000000..df16771 Binary files /dev/null and b/build/test/out/c/unity.o differ diff --git a/build/test/out/test_duellist_spielesammlung_projekt.out b/build/test/out/test_duellist_spielesammlung_projekt.out new file mode 100644 index 0000000..8bb26f0 Binary files /dev/null and b/build/test/out/test_duellist_spielesammlung_projekt.out differ diff --git a/build/test/preprocess/files/test_duellist_spielesammlung_projekt.c b/build/test/preprocess/files/test_duellist_spielesammlung_projekt.c new file mode 100644 index 0000000..e69de29 diff --git a/build/test/preprocess/includes/test_duellist_spielesammlung_projekt.c b/build/test/preprocess/includes/test_duellist_spielesammlung_projekt.c new file mode 100644 index 0000000..dcd024e --- /dev/null +++ b/build/test/preprocess/includes/test_duellist_spielesammlung_projekt.c @@ -0,0 +1 @@ +--- [] diff --git a/build/test/results/test_duellist_spielesammlung_projekt.pass b/build/test/results/test_duellist_spielesammlung_projekt.pass new file mode 100644 index 0000000..5046e33 --- /dev/null +++ b/build/test/results/test_duellist_spielesammlung_projekt.pass @@ -0,0 +1,14 @@ +--- +:source: + :path: src/test + :file: test_duellist_spielesammlung_projekt.c +:successes: [] +:failures: [] +:ignores: [] +:counts: + :total: 0 + :passed: 0 + :failed: 0 + :ignored: 0 +:stdout: [] +:time: 0.014711899915710092 diff --git a/build/test/runners/test_duellist_spielesammlung_projekt_runner.c b/build/test/runners/test_duellist_spielesammlung_projekt_runner.c new file mode 100644 index 0000000..bba31ca --- /dev/null +++ b/build/test/runners/test_duellist_spielesammlung_projekt_runner.c @@ -0,0 +1,57 @@ +/* AUTOGENERATED FILE. DO NOT EDIT. */ + +/*=======Automagically Detected Files To Include=====*/ +#include "unity.h" + +int GlobalExpectCount; +int GlobalVerifyOrder; +char* GlobalOrderError; + +/*=======External Functions This Runner Calls=====*/ +extern void setUp(void); +extern void tearDown(void); + + +/*=======Mock Management=====*/ +static void CMock_Init(void) +{ + GlobalExpectCount = 0; + GlobalVerifyOrder = 0; + GlobalOrderError = NULL; +} +static void CMock_Verify(void) +{ +} +static void CMock_Destroy(void) +{ +} + +/*=======Setup (stub)=====*/ +void setUp(void) {} + +/*=======Teardown (stub)=====*/ +void tearDown(void) {} + +/*=======Test Reset Options=====*/ +void resetTest(void); +void resetTest(void) +{ + tearDown(); + CMock_Verify(); + CMock_Destroy(); + CMock_Init(); + setUp(); +} +void verifyTest(void); +void verifyTest(void) +{ + CMock_Verify(); +} + +/*=======MAIN=====*/ +int main(void) +{ + UnityBegin("test_duellist_spielesammlung_projekt.c"); + + return UnityEnd(); +} diff --git a/src/main/duellist-spielesammlung-projekt.c b/src/main/duellist-spielesammlung-projekt.c index d5b9f76..701304f 100644 --- a/src/main/duellist-spielesammlung-projekt.c +++ b/src/main/duellist-spielesammlung-projekt.c @@ -2,47 +2,47 @@ #include #include -#define max_hoehe 10 -#define max_breite 10 -#define zeichen_unbekannt 'x' -#define zeichen_mine '@' +#define max_height 10 +#define max_width 10 +#define unknown_character 'x' +#define mine_character '@' -int berechneMinen(int hoehe, int breite) { - int anzahl_minen; - if (hoehe <= 1 || breite <= 1) { +int calculate_mines(int height, int width) { + int num_mines; + if (height <= 1 || width <= 1) { return 0; } else { - anzahl_minen = ((hoehe * breite) / 4); + num_mines = ((height * width) / 4); } - return anzahl_minen; + return num_mines; } -char** erschafe_minenfeld(int hoehe, int breite, char inerhalb) { - char** minenfeld = (char**)calloc(hoehe, sizeof(char*)); - for (int i = 0; i < hoehe; i++) { - minenfeld[i] = (char*)calloc(breite, sizeof(char)); +char** create_minefield(int height, int width, char within) { + char** minefield = (char**)calloc(height, sizeof(char*)); + for (int i = 0; i < height; i++) { + minefield[i] = (char*)calloc(width, sizeof(char)); } - for (int i = 0; i < hoehe; i++) { - for (int j = 0; j < breite; j++) { - minenfeld[i][j] = inerhalb; + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + minefield[i][j] = within; } } - return minenfeld; + return minefield; } -void verteile_minen(char** mienen, int hoehe, int breite, int anzahl_minen) { - int i, rand_hoehe, rand_breite; +void distribute_mines(char** mines, int height, int width, int num_mines) { + int i, rand_height, rand_width; srand(time(NULL)); - i = anzahl_minen; + i = num_mines; while (i > 0) { - rand_hoehe = (rand() % hoehe); - rand_breite = (rand() % breite); - if (mienen[rand_hoehe][rand_breite] == 0) { - mienen[rand_hoehe][rand_breite] = 1; + rand_height = (rand() % height); + rand_width = (rand() % width); + if (mines[rand_height][rand_width] == 0) { + mines[rand_height][rand_width] = 1; i--; } } @@ -50,22 +50,22 @@ void verteile_minen(char** mienen, int hoehe, int breite, int anzahl_minen) { int minesweeper() { - int hoehe, breite; - printf("Geben Sie an in welcher Hoehe das spielfeld sein soll:\n"); - scanf("%d", &hoehe); - printf("Geben Sie an welche Breite das spielfeld haben soll:\n"); - scanf("%d", &breite); - if (hoehe <= 0 || breite <= 0 || hoehe > max_hoehe || breite > max_breite) { - printf("Ungueltige Spielfeldabmessungen.\n"); + int height, width, row, column; + printf("Enter the height of the game field:\n"); + scanf("%d", &height); + printf("Enter the width of the game field:\n"); + scanf("%d", &width); + if (height <= 0 || width <= 0 || height > max_height || width > max_width) { + printf("Invalid field dimensions.\n"); return 1; } - int anzahl_minen = berechneMinen(hoehe, breite); - printf("Das Spielfeld ist >%d< gross und hat eine Breite von >%d<\n", hoehe, breite); - printf("Es gibt %d Minen auf dem Spielfeld.\n", anzahl_minen); - //Matrix fuer das Spielfeld - char** minenfield = erschafe_minenfeld(hoehe, breite, zeichen_unbekannt); - char** minen = erschafe_minenfeld(hoehe, breite, 0); - verteile_minen(minen, hoehe, breite, anzahl_minen); + int num_mines = calculate_mines(height, width); + printf("The game field is >%d< in height and >%d< in width.\n", height, width); + printf("There are %d mines on the game field.\n", num_mines); + // Matrix for the game field + char** minefield = create_minefield(height, width, unknown_character); + char** mines = create_minefield(height, width, 0); + distribute_mines(mines, height, width, num_mines); return 1; }