#include #include #include #include #include "Spieler.h" #include "Moving.h" #include "Dame.h" bool istzugerlaubt_Dame(char** Brett, int startX, int startY, int endX, int endY, Player player){ // Überprüfe, ob der Zug auf dem Spielbrett liegt if (endX < 0 || endX >= 8 || endY < 0 || endY >= 8) return false; // Berechne den Unterschied der Start- und Endpositionen int dx = abs(endX - startX); int dy = abs(endY - startY); // Überprüfe, ob sich die Dame nur vertikal, horizontal oder diagonal bewegt if (dx != 0 && dy != 0 && dx != dy) return false; // Überprüfe, ob die Dame über andere Figuren springt if (dx > 0) { int dirX = (endX - startX) / dx; for (int i = 1; i < dx; i++) { if (Brett[startY + i * dirX][startX + i * dirX] != ' ') return false; } } if (dy > 0) { int dirY = (endY - startY) / dy; for (int i = 1; i < dy; i++) { if (Brett[startY + i * dirY][startX + i * dirY] != ' ') return false; } } // Überprüfe, ob die Dame eine feindliche Figur schlägt oder auf ein leeres Feld zieht char endPosition = Brett[endY][endX]; if (player == PLAYER_WHITE && isupper(endPosition)) return false; if (player == PLAYER_BLACK && islower(endPosition)) return false; return true; }