From 735195460c18e96f89d23e08a5093d21ce671e57 Mon Sep 17 00:00:00 2001 From: Max-R Date: Tue, 2 Dec 2025 10:44:15 +0100 Subject: [PATCH 1/8] mein Branch --- .vscode/c_cpp_properties.json | 18 +++++++++++ .vscode/launch.json | 24 ++++++++++++++ .vscode/settings.json | 59 ++++++++++++++++++++++++++++++++++ doble_initial.exe | Bin 0 -> 66659 bytes highscores.txt | 4 +++ 5 files changed, 105 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 doble_initial.exe diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..cb8d469 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "windows-gcc-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "C:/ProgramData/mingw64/mingw64/bin/gcc.exe", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "windows-gcc-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..92df9c3 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "cppdbg", + "request": "launch", + "args": [], + "stopAtEntry": false, + "externalConsole": true, + "cwd": "c:/Users/Max-R/I2Pr/info2Praktikum-DobleSpiel", + "program": "c:/Users/Max-R/I2Pr/info2Praktikum-DobleSpiel/build/Debug/outDebug", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bb879da --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,59 @@ +{ + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false +} \ No newline at end of file diff --git a/doble_initial.exe b/doble_initial.exe new file mode 100644 index 0000000000000000000000000000000000000000..cd817782eb1984aac2840393e3f8abc5613f40fa GIT binary patch literal 66659 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 literal 0 HcmV?d00001 diff --git a/highscores.txt b/highscores.txt index 4edd5a7..69c79be 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1 +1,5 @@ +max;19374 +kristin;9935 +player_name;7961 +max;5989 player1;3999 From 705113425642dc1a756c73ffbffca3ddaa4748b2 Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 10:21:00 +0100 Subject: [PATCH 2/8] stack.h --- highscores.txt | 4 ++++ stack.h | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/highscores.txt b/highscores.txt index 69c79be..058b28c 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,5 +1,9 @@ +Max02.12;19860 max;19374 +Max02.12;11910 kristin;9935 +Max02.12;7966 player_name;7961 max;5989 +Max02.12;4988 player1;3999 diff --git a/stack.h b/stack.h index f7d542d..6d5dce9 100644 --- a/stack.h +++ b/stack.h @@ -9,6 +9,15 @@ The latest element is taken from the stack. */ //TODO: passenden Datentyp als struct anlegen +typedef struct StackNode { + + void *data; + struct StackNode *next; + +} StackNode; + +StackNode *createNode(void *data); + // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data); From e7423f0a202e7df87ecc30f7d0a60eb9c669db6d Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 10:26:10 +0100 Subject: [PATCH 3/8] stack.c --- stack.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/stack.c b/stack.c index e3a90d4..a49bdd9 100644 --- a/stack.c +++ b/stack.c @@ -1,33 +1,58 @@ #include #include "stack.h" -//TODO: grundlegende Stackfunktionen implementieren: +// TODO: grundlegende Stackfunktionen implementieren: /* * `push`: legt ein Element oben auf den Stack, - * `pop`: entfernt das oberste Element, - * `top`: liefert das oberste Element zurück, - * `clearStack`: gibt den gesamten Speicher frei. */ + * `pop`: entfernt das oberste Element, + * `top`: liefert das oberste Element zurück, + * `clearStack`: gibt den gesamten Speicher frei. */ // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data) { + StackNode *newNode = createNode(data); // Speicher für neuen Knoten + // reservieren + if (newNode == NULL) + { // wenn Speicher nicht reserviert werden konnte, wird + // stack unverändert zurückgegeben + return stack; + } + + newNode->next = stack; // pointer verschieben + + return newNode; // Zeiger auf neuen Speicherbereich zurückgeben } // Deletes the top element of the stack (latest added element) and releases its memory. (Pointer to data has to be // freed by caller.) StackNode *pop(StackNode *stack) { + if (stack == NULL) + return NULL; + StackNode *nextNode = stack->next; + + free(stack); + + stack = NULL; + + return nextNode; } // Returns the data of the top element. -void *top(StackNode *stack) -{ - -} +void *top(StackNode *stack) { return stack != NULL ? stack->data : NULL; } // Clears stack and releases all memory. void clearStack(StackNode *stack) { + while (stack != NULL) + { + StackNode *next = stack->next; + free(stack); + stack = next; + } + + return NULL; } \ No newline at end of file From ddd4132e1fe98c076bfdc9a501815961e6827148 Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 10:41:30 +0100 Subject: [PATCH 4/8] erste tests stack.c --- makefile | 8 ++++++- stack.h | 1 + test_stack.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 test_stack.c diff --git a/makefile b/makefile index 1f15f75..c816795 100644 --- a/makefile +++ b/makefile @@ -36,7 +36,13 @@ $(program_obj_filesobj_files): %.o: %.c # Unit Tests # -------------------------- unitTests: - echo "needs to be implemented" +TEST_BIN = runTests + +unitTests: stack.o test_stack.o + $(CC) $(FLAGS) -I$(unityfolder) -o $(TEST_BIN) stack.o test_stack.o $(unityfolder)/unity.c + +test_stack.o: test_stack.c + $(CC) $(FLAGS) -I$(unityfolder) -c test_stack.c -o test_stack.o # -------------------------- # Clean diff --git a/stack.h b/stack.h index 6d5dce9..c835596 100644 --- a/stack.h +++ b/stack.h @@ -13,6 +13,7 @@ typedef struct StackNode { void *data; struct StackNode *next; + struct StackNode *prev; } StackNode; diff --git a/test_stack.c b/test_stack.c new file mode 100644 index 0000000..dd9a6ca --- /dev/null +++ b/test_stack.c @@ -0,0 +1,59 @@ +#include "unity.h" +#include +#include +#include + +#include "stack.h" + +void test_createNode(void) { + + int testInt = 26; + + StackNode *testNode = createNode(&testInt); + + TEST_ASSERT_NOT_NULL(testNode); + + TEST_ASSERT_EQUAL_PTR(&testInt, testNode->data); + + TEST_ASSERT_NULL(testNode->next); + + free(testNode); +} + +void test_pushDataToStack(void) {} + +void test_deleteTopElement(void) {} + +void test_returnData(void) {} + +void test_clearStack(void) { + + int testInts[] = {1, 2, 3, 4, 5}; + StackNode *testStack = NULL; + + for (int i = 0; i < 5; i++) { + + testStack = push(testStack, &testInts[i]); + } + + clearStack(testStack); + TEST_ASSERT_NULL(testStack); +} + +void setUp(void) {} +void tearDown(void) {} + +int main(void) { + + UNITY_BEGIN(); + + printf("------------------------stack test------------------------\n"); + RUN_TEST(test_createNode); + RUN_TEST(test_pushDataToStack); + RUN_TEST(test_deleteTopElement); + RUN_TEST(test_returnData); + RUN_TEST(test_clearStack); + RUN_TEST(test_clearStack); + + return UNITY_END(); +} \ No newline at end of file From 4bb0d7516e4d57f93092a6ebbe87d9c87e75803b Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 10:48:10 +0100 Subject: [PATCH 5/8] stak.c --- stack.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stack.c b/stack.c index a49bdd9..2375723 100644 --- a/stack.c +++ b/stack.c @@ -52,6 +52,9 @@ void clearStack(StackNode *stack) StackNode *next = stack->next; free(stack); stack = next; + stack->data = NULL; + stack->next = NULL; + stack->prev = NULL; } return NULL; From b28deeaafb63bb77b092829a8043aa083f69fe52 Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 10:53:03 +0100 Subject: [PATCH 6/8] mhm --- stack.c | 1 - stack.o | Bin 0 -> 1334 bytes test_stack.o | Bin 0 -> 6990 bytes 3 files changed, 1 deletion(-) create mode 100644 stack.o create mode 100644 test_stack.o diff --git a/stack.c b/stack.c index 2375723..df93901 100644 --- a/stack.c +++ b/stack.c @@ -57,5 +57,4 @@ void clearStack(StackNode *stack) stack->prev = NULL; } - return NULL; } \ No newline at end of file diff --git a/stack.o b/stack.o new file mode 100644 index 0000000000000000000000000000000000000000..bd2cd36e273e0288b228fe57bb09404790b77baf GIT binary patch literal 1334 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 Date: Fri, 5 Dec 2025 11:04:09 +0100 Subject: [PATCH 7/8] create node --- stack.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/stack.c b/stack.c index df93901..6b63f0b 100644 --- a/stack.c +++ b/stack.c @@ -7,6 +7,22 @@ * `top`: liefert das oberste Element zurück, * `clearStack`: gibt den gesamten Speicher frei. */ +StackNode *createNode(void *data) +{ + + StackNode *node = + malloc(sizeof(StackNode)); // Speicher reservieren, Speicherplatz für das + // struct StackNode + + if (node == NULL) + return NULL; // Speicher konnte nicht reserviert werden + + node->data = data; // Zeiger auf data neuer node + node->next = NULL; // nächster Zeiger ist NULL, Ende der Liste + + return node; // pointer auf den neuen Knoten zurückgeben +} + // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data) { @@ -56,5 +72,4 @@ void clearStack(StackNode *stack) stack->next = NULL; stack->prev = NULL; } - } \ No newline at end of file From 09426ae40a3324d0f45c28542938511773255da6 Mon Sep 17 00:00:00 2001 From: Max-R Date: Fri, 5 Dec 2025 11:10:20 +0100 Subject: [PATCH 8/8] tests bis auf clearstack laufen --- runTests.exe | Bin 0 -> 97541 bytes stack.o | Bin 1334 -> 1488 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 runTests.exe diff --git a/runTests.exe b/runTests.exe new file mode 100644 index 0000000000000000000000000000000000000000..2b458d5a5c7d36b12bdd53442ca3e678837ecc81 GIT binary patch literal 97541 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 DRo_7B literal 0 HcmV?d00001 diff --git a/stack.o b/stack.o index bd2cd36e273e0288b228fe57bb09404790b77baf..177a3f51116180f096a79a483b3efd9771676f0e 100644 GIT binary patch delta 610 zcmY+BO-lk%6o&73XKI?1v9O%1NYJ1_ZJ-Za7zh!JD=qT}3>pM#is?oO7eO%SX1L2% z{fVe{t!mN2pU_fpA?@7RIWyA*FPwYc^FHT(%-k1cxE!cFE)X2wl#qxW2rC7F5D`M7 zcIsA21G=)GW62DNfsc?A=)<8xWQm?VIC4rp6+nI2zdMI-8mJNahIKwQ9`2{4v-pbj zc+=>E(=P=LE9l72tc-x23SreMY2ayw^)Y&y&1NhrjQxU4CHYdM0_@I0KK(d{?JzJ8 zApBk)LdJ73Paxu6&cg>KSlw6bt%8FcB6){-!%-_hT?M7H7X|*W@M^ev(ZG0 z4A5ggbYZFOIYXyQaVSm^hzWQ}Aanf2`y^V`ErHzdN1j3jZ7$he0igO7tGBB_J@d2iZdU>omKq--l3zc;ZfD8vF28Me; z3<5kr?7(2)pl<@^!ifMNt6<_s`N@%tJS-s5$(f9=IVZrt-e6kHDy5d&fthC(1I4rZNzvw#c+E+A$G%EMS3K$ZYl3}iAy7Q~0J zMBuU@lObX6pa&gUL?`pHuyf=WfcefK z0e(oRmO#bYfnw5}AZdOeUIx}Ok41u!ZSr=OY(|~Q%B;%b20$5*dr^VZ