#include #include #include #include #include "spieler.h" #include "Moving.h" #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); // Schaut ob die bewegung eine L-form hat 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 } else if (player == PLAYER_BLACK && isupper(EndPosition)) { return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist } else if (EndPosition == ' ') { return true; // Erlaubter zug weil die Zielposition leer ist } } return false; // kein erlaubter zug } bool bewegeSpringer(char** Brett, int startX, int startY, int endX, int endY, Player player) { // Überprüfen ob der Zug legal ist if (!istzugerlaubt_Springer(Brett, startX, startY, endX, endY, player)) { return false; // Zug ist nicht erlaubt } char springer = Brett[startY][startX]; // Aktualisiere das Brett. Brett[startY][startX] = ' '; Brett[endY][endX] = springer; return true; }