From 910ee7ac17ebe08a52cd1717ad0dc642bb718f2c Mon Sep 17 00:00:00 2001 From: fdai7492 Date: Fri, 2 Feb 2024 02:43:36 +0000 Subject: [PATCH] Extra Checks, Anton Lohrey --- src/Springer.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Springer.c b/src/Springer.c index 785d840..aff2cbe 100644 --- a/src/Springer.c +++ b/src/Springer.c @@ -7,6 +7,10 @@ #include "Springer.h" bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int endY, Player player) { + // Schauen ob der zug auf dem Spielbrett passiert + if (endX < 0 || endX >= 8 || endY < 0 || endY >= 8) { + return false; + } // Berechnung des unterschieds der start und endpositionen int dx = abs(endX - startX); int dy = abs(endY - startY); @@ -17,6 +21,16 @@ bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int if ((dx == 2 && dy == 1) || (dx == 1 && dy == 2)) { char EndPosition = Brett[endY][endX]; + //schaut ob die Endposition von einer eigenen Figur belegt ist + if (player == PLAYER_WHITE) { + if (isupper(EndPosition) && EndPosition != ' ') { + return false; + } + } else { // PLAYER_BLACK + if (islower(EndPosition) && EndPosition != ' ') { + return false; + } + } if (player == PLAYER_WHITE && islower(EndPosition)) { return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist