From 44c5901d1165a33ec2d25531a183300b7a78c529 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 18:20:27 +0100 Subject: [PATCH 1/7] Erstellung der Bauerumwandlungsdatei, Luis Hahn --- src/Bauernumwandlung.c | 20 ++++++++++++++++++++ src/Bauernumwandlung.h | 11 +++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/Bauernumwandlung.c create mode 100644 src/Bauernumwandlung.h diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c new file mode 100644 index 0000000..f232c77 --- /dev/null +++ b/src/Bauernumwandlung.c @@ -0,0 +1,20 @@ +#include +#include +#include +#include "spieler.h" +#include "Moving.h" +#include "Bauer.h" + +bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { + + +} + +char bauer_umwandel_abfrage(){ + +} + +void bauer_umwandeln(){ + +} + diff --git a/src/Bauernumwandlung.h b/src/Bauernumwandlung.h new file mode 100644 index 0000000..70dc060 --- /dev/null +++ b/src/Bauernumwandlung.h @@ -0,0 +1,11 @@ +#ifndef BAUER_UM_H +#define BAUER_UM_H + +#include +#include "spieler.h" + +bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { +char bauer_umwandel_abfrage(); +void bauer_umwandeln(); + +#endif // BAUER_UM_H From aae56ac089aa71c54c59d0f3ac70d74bed6df97c Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 18:38:12 +0100 Subject: [PATCH 2/7] =?UTF-8?q?hinzuf=C3=BCgen=20der=20abfrage=20f=C3=BCr?= =?UTF-8?q?=20Bauernumwandlung,=20Luis=20Hahn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Bauernumwandlung.c | 9 ++++++++- src/Bauernumwandlung.h | 2 +- test/test_Bauernumwandlung.c | 37 ++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 test/test_Bauernumwandlung.c diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index f232c77..8bb0ecb 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -7,6 +7,13 @@ bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { + if((player == PLAYER_WHITE) && (endY == 7) && (Brett[startY][startX] == 'P')){ + return true; + }else if((player == PLAYER_BLACK) && (endY == 0) && (Brett[startY][startX] == 'p')){ + return true; + }else{ + return false; + } } @@ -15,6 +22,6 @@ char bauer_umwandel_abfrage(){ } void bauer_umwandeln(){ - + } diff --git a/src/Bauernumwandlung.h b/src/Bauernumwandlung.h index 70dc060..ac2048f 100644 --- a/src/Bauernumwandlung.h +++ b/src/Bauernumwandlung.h @@ -4,7 +4,7 @@ #include #include "spieler.h" -bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { +bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player); char bauer_umwandel_abfrage(); void bauer_umwandeln(); diff --git a/test/test_Bauernumwandlung.c b/test/test_Bauernumwandlung.c new file mode 100644 index 0000000..159ab83 --- /dev/null +++ b/test/test_Bauernumwandlung.c @@ -0,0 +1,37 @@ +#ifdef TEST +#include "unity.h" +#include +#include "Schachbrett.h" +#include "Bauer.h" +#include "Bauernumwandlung.h" + +void setUp(void) { +} + +void tearDown(void) { +} + +void test_Bauernumwandlung_erlaubt(void) { + + char** brett = Schachbrett_erstellen(); + int startX = 6; + int startY = 6; + int endX = 6; + int endY = 7; + Player player = PLAYER_WHITE; + + + TEST_ASSERT_NOT_NULL(brett); + + brett[6][6] = 'P'; + brett[7][6] = ' '; + + TEST_ASSERT_TRUE(ist_umwandlung_gerlaubt_Bauer( brett, startX, startY, endX, endY, player)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} +#endif // TEST From 4bf1e0ec3de17f90ef5e353b0d238dafd782769e Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 18:52:43 +0100 Subject: [PATCH 3/7] =?UTF-8?q?Hinzuf=C3=BCgen=20der=20Figur=20abfrage,=20?= =?UTF-8?q?Luis=20Hahn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Bauernumwandlung.c | 16 +++++++++++++++- src/Bauernumwandlung.h | 2 +- test/test_Bauernumwandlung.c | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index 8bb0ecb..549cd36 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -4,6 +4,7 @@ #include "spieler.h" #include "Moving.h" #include "Bauer.h" +#include "Input.h" bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player) { @@ -17,8 +18,21 @@ bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int end } -char bauer_umwandel_abfrage(){ +char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int endY, Player player){ + if(ist_umwandlung_gerlaubt_Bauer(Brett ,startX,startY,endX,endY,player) == true){ + char* Figur; + printf("Welche Figur soll erstellt werden?"); + if(player == PLAYER_WHITE){ + printf("Q für Dame, R für Turm, B für Läufer oder N für Springer"); + Figur = getUserInput(); + return Figur; + }else{ + printf("q für Dame, r für Turm, b für Läufer oder n für Springer"); + Figur = getUserInput(); + return Figur; + } + } } void bauer_umwandeln(){ diff --git a/src/Bauernumwandlung.h b/src/Bauernumwandlung.h index ac2048f..2c87b81 100644 --- a/src/Bauernumwandlung.h +++ b/src/Bauernumwandlung.h @@ -5,7 +5,7 @@ #include "spieler.h" bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player); -char bauer_umwandel_abfrage(); +char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int endY, Player player); void bauer_umwandeln(); #endif // BAUER_UM_H diff --git a/test/test_Bauernumwandlung.c b/test/test_Bauernumwandlung.c index 159ab83..f610822 100644 --- a/test/test_Bauernumwandlung.c +++ b/test/test_Bauernumwandlung.c @@ -3,6 +3,7 @@ #include #include "Schachbrett.h" #include "Bauer.h" +#include "Input.h" #include "Bauernumwandlung.h" void setUp(void) { From 11a270fa436c3e5b232358df9592679e64429184 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 18:58:33 +0100 Subject: [PATCH 4/7] fertigstellung der Figur abfrage bei Bauernumwandlung, Luis Hahn --- src/Bauernumwandlung.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index 549cd36..7008289 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -26,11 +26,20 @@ char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int if(player == PLAYER_WHITE){ printf("Q für Dame, R für Turm, B für Läufer oder N für Springer"); Figur = getUserInput(); - return Figur; + if(Figur == 'Q' || Figur == 'R' || Figur == 'B' || Figur == 'N'){ + return Figur; + }else{ + return 'P'; + } }else{ printf("q für Dame, r für Turm, b für Läufer oder n für Springer"); Figur = getUserInput(); - return Figur; + if(Figur == 'q' || Figur == 'r' || Figur == 'b' || Figur == 'n'){ + return Figur; + }else{ + return 'p'; + } + } } } From fa88b473d662afb84614af0f3e90c09bacdd58fc Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:02:04 +0100 Subject: [PATCH 5/7] =?UTF-8?q?Fertigstellung=20der=20Ausf=C3=BChrung=20vo?= =?UTF-8?q?n=20Bauernumwandlung,=20Luis=20Hahn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Bauernumwandlung.c | 4 +++- src/Bauernumwandlung.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index 7008289..75dd8a7 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -44,7 +44,9 @@ char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int } } -void bauer_umwandeln(){ +void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player){ + Brett[endY][endX] = bauer_umwandel_abfrage(Brett,startX,startY,endX,endY,player); + Brett[startY][startX] = ' '; } diff --git a/src/Bauernumwandlung.h b/src/Bauernumwandlung.h index 2c87b81..8f6d85f 100644 --- a/src/Bauernumwandlung.h +++ b/src/Bauernumwandlung.h @@ -6,6 +6,6 @@ bool ist_umwandlung_gerlaubt_Bauer(char** Brett, int startX, int startY, int endX, int endY, Player player); char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int endY, Player player); -void bauer_umwandeln(); +void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player); #endif // BAUER_UM_H From 1c8b2de4fb28f214633a511356d296403bf14588 Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:06:51 +0100 Subject: [PATCH 6/7] refactoring: zusammenfassung der abfrage bei Bauernumwandlung, Luis Hahn --- src/Bauernumwandlung.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index 75dd8a7..60be6d2 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -26,22 +26,19 @@ char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int if(player == PLAYER_WHITE){ printf("Q für Dame, R für Turm, B für Läufer oder N für Springer"); Figur = getUserInput(); - if(Figur == 'Q' || Figur == 'R' || Figur == 'B' || Figur == 'N'){ - return Figur; - }else{ - return 'P'; - } }else{ printf("q für Dame, r für Turm, b für Läufer oder n für Springer"); - Figur = getUserInput(); - if(Figur == 'q' || Figur == 'r' || Figur == 'b' || Figur == 'n'){ - return Figur; - }else{ - return 'p'; - } - + Figur = getUserInput(); + } + + if((player == PLAYER_WHITE && (Figur == 'Q' || Figur == 'R' || Figur == 'B' || Figur == 'N')) || + (player == PLAYER_BLACK && (Figur == 'q' || Figur == 'r' || Figur == 'b' || Figur == 'n'))){ + return Figur; + }else{ + return 'W'; } } + } void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player){ From e095b6f8dafaa2f261877ee0feb19d93f31fe9dc Mon Sep 17 00:00:00 2001 From: Luis Hahn Date: Mon, 5 Feb 2024 19:09:45 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Hinzuf=C3=BCgen=20einer=20Sicherheitsabfrag?= =?UTF-8?q?e=20bei=20Bauernumwandlung,=20Luis=20Hahn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Bauernumwandlung.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Bauernumwandlung.c b/src/Bauernumwandlung.c index 60be6d2..a8a0055 100644 --- a/src/Bauernumwandlung.c +++ b/src/Bauernumwandlung.c @@ -30,7 +30,7 @@ char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int printf("q für Dame, r für Turm, b für Läufer oder n für Springer"); Figur = getUserInput(); } - + if((player == PLAYER_WHITE && (Figur == 'Q' || Figur == 'R' || Figur == 'B' || Figur == 'N')) || (player == PLAYER_BLACK && (Figur == 'q' || Figur == 'r' || Figur == 'b' || Figur == 'n'))){ return Figur; @@ -43,7 +43,12 @@ char* bauer_umwandel_abfrage(char** Brett, int startX, int startY, int endX, int void bauer_umwandeln(char** Brett, int startX, int startY, int endX, int endY, Player player){ - Brett[endY][endX] = bauer_umwandel_abfrage(Brett,startX,startY,endX,endY,player); - Brett[startY][startX] = ' '; + char* Figur = bauer_umwandel_abfrage(Brett,startX,startY,endX,endY,player); + if(Figur != 'W'){ + Brett[endY][endX] = Figur; + Brett[startY][startX] = ' '; + }else{ + printf("Zug ungültig"); + } }