From c818316dd9c0b664ab67b19d403734ad8e23f2d0 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:17:09 +0100 Subject: [PATCH 1/6] erstellung der En Passaut datein, Luis Hahn --- src/En_Passaut.c | 14 ++++++++++++++ src/En_Passaut.h | 10 ++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/En_Passaut.c create mode 100644 src/En_Passaut.h diff --git a/src/En_Passaut.c b/src/En_Passaut.c new file mode 100644 index 0000000..7f9c571 --- /dev/null +++ b/src/En_Passaut.c @@ -0,0 +1,14 @@ +#include +#include +#include +#include "spieler.h" +#include "Moving.h" +#include "Bauer.h" + +bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { + + + +} + + diff --git a/src/En_Passaut.h b/src/En_Passaut.h new file mode 100644 index 0000000..382efa8 --- /dev/null +++ b/src/En_Passaut.h @@ -0,0 +1,10 @@ +#ifndef BAUER_EP_H +#define BAUER_EP_H + +#include +#include "spieler.h" + +bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player); + + +#endif // BAUER_EP_H From 361cd9469247825c3d26e1a2c7919ae5de5d7d6f Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:27:35 +0100 Subject: [PATCH 2/6] Basic abfrage von En Passaut, Luis Hahn --- src/En_Passaut.c | 12 ++++++++++-- src/En_Passaut.h | 2 +- test/test_En_Passaut.c | 44 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 test/test_En_Passaut.c diff --git a/src/En_Passaut.c b/src/En_Passaut.c index 7f9c571..9018d74 100644 --- a/src/En_Passaut.c +++ b/src/En_Passaut.c @@ -4,10 +4,18 @@ #include "spieler.h" #include "Moving.h" #include "Bauer.h" +#include "Historie.h" -bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { - +bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player + ,int anzahl_Zuege, int** Historie) { + char* letzteFigur = Brett[Historie[anzahl_Zuege-1][3]][Historie[anzahl_Zuege-1][2]]; + + if(letzteFigur == 'p'){ + return true; + }else{ + return false; + } } diff --git a/src/En_Passaut.h b/src/En_Passaut.h index 382efa8..64da831 100644 --- a/src/En_Passaut.h +++ b/src/En_Passaut.h @@ -4,7 +4,7 @@ #include #include "spieler.h" -bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player); +bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player, int anzahl_Zuege, int** Historie); #endif // BAUER_EP_H diff --git a/test/test_En_Passaut.c b/test/test_En_Passaut.c new file mode 100644 index 0000000..e623eb6 --- /dev/null +++ b/test/test_En_Passaut.c @@ -0,0 +1,44 @@ +#ifdef TEST +#include "unity.h" +#include +#include "Schachbrett.h" +#include "Historie.h" +#include "En_Passaut.h" +#include "Bauer.h" + +void setUp(void) { +} + +void tearDown(void) { +} + +void test_En_Passaut_Weiss(void) { + + /* void test_hinzufuegen_historie(void) { + int MAX_ZUEGE = 70; + int ZUG_INFO = 5; + + // Historie erstellen + int** meineHistorie = erstellen_historie(); + + // Testdaten + int startX = 1; + int startY = 2; + int endX = 3; + int endY = 4; + Player currentPlayer = PLAYER_WHITE; + int anzahl_Zuege = 0; + + // Züge zur Historie hinzufügen + hinzufuegen_historie(meineHistorie, startX, startY, endX, endY, currentPlayer, anzahl_Zuege); + + + // Speicher freigeben + for (int i = 0; i < MAX_ZUEGE; i++) { + free(meineHistorie[i]); + } + +} +*/ +} +#endif // TEST From d83e2b84c85c7fb0c2518e4e9cf81509234f4557 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:32:22 +0100 Subject: [PATCH 3/6] =?UTF-8?q?Hinzuf=C3=BCgen=20der=20clear=20Schachbrett?= =?UTF-8?q?=20funktion=20f=C3=BCr=20die=20Testvereinfachung,=20Luis=20Hahn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Schachbrett.c | 8 ++++++++ src/Schachbrett.h | 1 + test/test_Schachbrett.c | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/Schachbrett.c b/src/Schachbrett.c index 4b3a0d7..35f0983 100644 --- a/src/Schachbrett.c +++ b/src/Schachbrett.c @@ -60,6 +60,14 @@ void print_Schachfeld(char** Brett) { printf("\n"); } +void clear_Schachbrett(char** Brett){ + for(int i = 0; i < 8 ; i++){ + for(int j = 0; j < 8 ; j++){ + Brett[i][j]=' '; + } + } +} + void Schachbrettspeicher_freigeben(char** Brett) { if (Brett == NULL) { return; diff --git a/src/Schachbrett.h b/src/Schachbrett.h index 980975d..bea934c 100644 --- a/src/Schachbrett.h +++ b/src/Schachbrett.h @@ -4,5 +4,6 @@ char** Schachbrett_erstellen(); void print_Schachfeld(char** Brett); void Schachbrettspeicher_freigeben(char** Brett); +void clear_Schachbrett(char** Brett); #endif // SCHACHBRETT_H diff --git a/test/test_Schachbrett.c b/test/test_Schachbrett.c index a331283..7e2d89e 100644 --- a/test/test_Schachbrett.c +++ b/test/test_Schachbrett.c @@ -24,4 +24,25 @@ void test_Schachbrett_erstellen(void) { } free(brett); } + +void test_Schachbrett_clearen(void) { + char** brett = Schachbrett_erstellen(); + + TEST_ASSERT_NOT_NULL(brett); + + clear_Schachbrett(brett); + + for(int i = 0; i < 8 ; i++){ + for(int j = 0; j < 8 ; j++){ + TEST_ASSERT_EQUAL(' ', brett[i][j]); + } + } + + print_Schachfeld(brett); + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} #endif // TEST From af28d54503ee1b64840dcfa1c8f888bc1cb66202 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:43:23 +0100 Subject: [PATCH 4/6] Erstellung der En Passaut Grundfunktion, Luis Hahn --- test/test_En_Passaut.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/test/test_En_Passaut.c b/test/test_En_Passaut.c index e623eb6..def5cb4 100644 --- a/test/test_En_Passaut.c +++ b/test/test_En_Passaut.c @@ -5,6 +5,7 @@ #include "Historie.h" #include "En_Passaut.h" #include "Bauer.h" +#include "Spieler.h" void setUp(void) { } @@ -14,7 +15,6 @@ void tearDown(void) { void test_En_Passaut_Weiss(void) { - /* void test_hinzufuegen_historie(void) { int MAX_ZUEGE = 70; int ZUG_INFO = 5; @@ -23,15 +23,36 @@ void test_En_Passaut_Weiss(void) { // Testdaten int startX = 1; - int startY = 2; - int endX = 3; + int startY = 6; + int endX = 1; int endY = 4; - Player currentPlayer = PLAYER_WHITE; + Player currentPlayer = PLAYER_BLACK; int anzahl_Zuege = 0; // Züge zur Historie hinzufügen hinzufuegen_historie(meineHistorie, startX, startY, endX, endY, currentPlayer, anzahl_Zuege); + char** brett = Schachbrett_erstellen(); + clear_Schachbrett(brett); + + TEST_ASSERT_NOT_NULL(brett); + + brett[endY][endX] = 'p'; + anzahl_Zuege++; + startX = 2; + startY = 4; + endX = 2; + endY = 5; + currentPlayer = PLAYER_WHITE; + + + TEST_ASSERT_TRUE(ist_En_Passaut_erlaubt_Bauer(brett,startX,startY,endX,endY,currentPlayer,anzahl_Zuege,meineHistorie)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); // Speicher freigeben for (int i = 0; i < MAX_ZUEGE; i++) { @@ -39,6 +60,6 @@ void test_En_Passaut_Weiss(void) { } } -*/ -} + + #endif // TEST From 7736e316a04a6c02f040842ce7e55516fefb5948 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:52:05 +0100 Subject: [PATCH 5/6] erweiteung der En Passaut funktion, Luis Hahn --- src/En_Passaut.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/En_Passaut.c b/src/En_Passaut.c index 9018d74..d7dcfc7 100644 --- a/src/En_Passaut.c +++ b/src/En_Passaut.c @@ -9,13 +9,20 @@ bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player ,int anzahl_Zuege, int** Historie) { - char* letzteFigur = Brett[Historie[anzahl_Zuege-1][3]][Historie[anzahl_Zuege-1][2]]; + char letzteFigur = Brett[Historie[anzahl_Zuege-1][3]][Historie[anzahl_Zuege-1][2]]; - if(letzteFigur == 'p'){ - return true; - }else{ - return false; - } + if((startX + 1 == Historie[anzahl_Zuege-1][0])||(startX - 1 == Historie[anzahl_Zuege-1][0])){ + printf("Kein Fehler nach X-Verschiebung"); + if((letzteFigur == 'p') && (player == PLAYER_WHITE) && + (Historie[anzahl_Zuege-1][3] == Historie[anzahl_Zuege-1][1] - 2)){ + + return true; + }else{ + return false; + } + } + + } From 71f6f305c3686d6c7ac3cdc542e3df9fde31796a Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:59:13 +0100 Subject: [PATCH 6/6] En Passaut fertig, Luis Hahn --- src/En_Passaut.c | 14 +++++++----- test/test_En_Passaut.c | 50 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/En_Passaut.c b/src/En_Passaut.c index d7dcfc7..5bb17a9 100644 --- a/src/En_Passaut.c +++ b/src/En_Passaut.c @@ -11,19 +11,23 @@ bool ist_En_Passaut_erlaubt_Bauer(char** Brett, int startX, int startY, int endX char letzteFigur = Brett[Historie[anzahl_Zuege-1][3]][Historie[anzahl_Zuege-1][2]]; - if((startX + 1 == Historie[anzahl_Zuege-1][0])||(startX - 1 == Historie[anzahl_Zuege-1][0])){ + if(((startX + 1 == Historie[anzahl_Zuege-1][0])||(startX - 1 == Historie[anzahl_Zuege-1][0])) + && ((endX == startX + 1) || (endX == startX - 1))){ printf("Kein Fehler nach X-Verschiebung"); + if((letzteFigur == 'p') && (player == PLAYER_WHITE) && - (Historie[anzahl_Zuege-1][3] == Historie[anzahl_Zuege-1][1] - 2)){ + (Historie[anzahl_Zuege-1][3] == 4) && (Historie[anzahl_Zuege-1][1] == 6)){ + + return true; + }else if ((letzteFigur == 'P') && (player == PLAYER_BLACK) && + (Historie[anzahl_Zuege-1][3] == 3) && (Historie[anzahl_Zuege-1][1] == 1)){ return true; }else{ - return false; + return false; } } - - } diff --git a/test/test_En_Passaut.c b/test/test_En_Passaut.c index def5cb4..1fd58c8 100644 --- a/test/test_En_Passaut.c +++ b/test/test_En_Passaut.c @@ -41,7 +41,7 @@ void test_En_Passaut_Weiss(void) { anzahl_Zuege++; startX = 2; startY = 4; - endX = 2; + endX = 1; endY = 5; currentPlayer = PLAYER_WHITE; @@ -61,5 +61,53 @@ void test_En_Passaut_Weiss(void) { } +void test_En_Passaut_Schwarz(void) { + + int MAX_ZUEGE = 70; + int ZUG_INFO = 5; + + // Historie erstellen + int** meineHistorie = erstellen_historie(); + + // Testdaten + int startX = 1; + int startY = 1; + int endX = 1; + int endY = 3; + Player currentPlayer = PLAYER_WHITE; + int anzahl_Zuege = 0; + + // Züge zur Historie hinzufügen + hinzufuegen_historie(meineHistorie, startX, startY, endX, endY, currentPlayer, anzahl_Zuege); + + char** brett = Schachbrett_erstellen(); + clear_Schachbrett(brett); + + TEST_ASSERT_NOT_NULL(brett); + + brett[endY][endX] = 'P'; + anzahl_Zuege++; + startX = 2; + startY = 3; + endX = 1; + endY = 2; + currentPlayer = PLAYER_BLACK; + + + TEST_ASSERT_TRUE(ist_En_Passaut_erlaubt_Bauer(brett,startX,startY,endX,endY,currentPlayer,anzahl_Zuege,meineHistorie)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); + + // Speicher freigeben + for (int i = 0; i < MAX_ZUEGE; i++) { + free(meineHistorie[i]); + } + +} + #endif // TEST