|
|
@ -12,15 +12,15 @@ bool istzugerlaubt_Dame(char** Brett, int startX, int startY, int endX, int endY |
|
|
|
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++) { |
|
|
@ -36,6 +36,7 @@ bool istzugerlaubt_Dame(char** Brett, int startX, int startY, int endX, int endY |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Ü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; |
|
|
|