diff --git a/src/Moving.c b/src/Moving.c index 848f037..01cddcc 100644 --- a/src/Moving.c +++ b/src/Moving.c @@ -3,6 +3,8 @@ #include #include "spieler.h" #include "Bauer.h" +#include "Turm.h" +#include "Springer.h" bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Player player) { @@ -25,9 +27,11 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla switch (Brett[startY][startX]) { case 'R': //Datei von Turm aufrufen + return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player)); break; case 'N': //Datei von Springer aufrufen + return (istzugerlaubt_Springer(Brett, startX,startY,endX,endY,player)); break; case 'B': //Datei von Läufer aufrufen @@ -39,11 +43,8 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla //Datei von König aufrufen break; case 'P': - /* if(istzugerlaubt_Bauer(Brett,startX,startY,endX,endY,player) == true){ - return true; - }else{ - return false; - }*/ + //Datei von Bauer aufrufen + return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player)); break; default: break; @@ -53,6 +54,7 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla switch (Brett[startY][startX]) { case 'r': //Datei von Turm aufrufen + return (istzugerlaubt_Turm(Brett, startX,startY,endX,endY,player)); break; case 'n': //Datei von Springer aufrufen @@ -68,6 +70,7 @@ bool istzugerlaubt(char** Brett, int startX, int startY, int endX, int endY, Pla break; case 'p': //Datei von Bauer aufrufen + return (istzugerlaubt_Bauer(Brett, startX,startY,endX,endY,player)); break; default: break; diff --git a/src/Schachbrett.c b/src/Schachbrett.c index a707b25..96f770e 100644 --- a/src/Schachbrett.c +++ b/src/Schachbrett.c @@ -47,12 +47,18 @@ char** Schachbrett_erstellen() { } void print_Schachfeld(char** Brett) { + int counter = 1; + printf(" - 1 2 3 4 5 6 7 8 \n"); for (int i = 0; i < 8; i++) { + printf(" %d " , counter); + counter++; for (int j = 0; j < 8; j++) { printf(" %c ", Brett[i][j]); } printf("\n"); } + printf("\n"); + printf("\n"); } void Schachbrettspeicher_freigeben(char** Brett) { diff --git a/src/Turm.c b/src/Turm.c index 04991cd..c12a07c 100644 --- a/src/Turm.c +++ b/src/Turm.c @@ -48,6 +48,8 @@ int counter = 0; return true; } + }else{ + return false; } diff --git a/test/test_Moving.c b/test/test_Moving.c index fdf9a48..5d2dbc1 100644 --- a/test/test_Moving.c +++ b/test/test_Moving.c @@ -3,6 +3,9 @@ #include "Schachbrett.h" #include "Moving.h" #include "Spieler.h" +#include "Turm.h" +#include "Bauer.h" +#include "Springer.h" #include void setUp(void) { @@ -36,6 +39,40 @@ void test_Bauern_bewegen(void) { free(brett); } +void test_Bauer_Y_Verknuepfung_Bewegung(void) { + + char** brett = Schachbrett_erstellen(); + int startX = 1; + int startY = 1; + int endX = 1; + int endY = 2; + Player player = PLAYER_WHITE; + + + TEST_ASSERT_NOT_NULL(brett); + + + TEST_ASSERT_TRUE(istzugerlaubt( brett, startX, startY, endX, endY, player)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} + +void test_istzugerlaubt_Springer_Verknuepfung(void) { + char **Brett = Schachbrett_erstellen(); + + // Viele Test um legale Züge zu prüfen + TEST_ASSERT_TRUE(istzugerlaubt(Brett, 1, 0, 0, 2, PLAYER_WHITE)); + + TEST_ASSERT_TRUE(istzugerlaubt(Brett, 4, 3, 6, 2, PLAYER_BLACK)); + + + Schachbrettspeicher_freigeben(Brett); +} + void test_istzugerlaubt(void){ char** brett = Schachbrett_erstellen(); int startX = 1; @@ -56,4 +93,29 @@ void test_istzugerlaubt(void){ } +void test_istzugerlaubt_Turm(void){ + + char** brett = Schachbrett_erstellen(); + int startX = 0; + int startY = 4; + int endX = 0; + int endY = 2; + Player player = PLAYER_WHITE; + + + TEST_ASSERT_NOT_NULL(brett); + + brett[4][0] = 'r'; + print_Schachfeld(brett); + + + TEST_ASSERT_TRUE(istzugerlaubt(brett, startX, startY, endX, endY, player)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} + #endif // TEST diff --git a/test/test_Turm.c b/test/test_Turm.c index be5226b..a28de2a 100644 --- a/test/test_Turm.c +++ b/test/test_Turm.c @@ -38,6 +38,8 @@ void test_Turm_Y_Bewegung(void) { free(brett); } + + void test_Turm_X_Bewegung(void) { char** brett = Schachbrett_erstellen(); @@ -88,6 +90,31 @@ void test_Turm_negative_Y_Bewegung(void) { free(brett); } +void test_Turm_Falsche_Bewegung(void) { + + char** brett = Schachbrett_erstellen(); + int startX = 0; + int startY = 0; + int endX = 1; + int endY = 3; + Player player = PLAYER_WHITE; + + + TEST_ASSERT_NOT_NULL(brett); + + + print_Schachfeld(brett); + + + TEST_ASSERT_FALSE(istzugerlaubt_Turm( brett, startX, startY, endX, endY, player)); + + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} + #endif // TEST