#include #include #include #include #include "spieler.h" #include "Moving.h" #include "Laeufer.h" #include "Spielstatus.h" bool istzugerlaubt_Laeufer(char** brett, int startX, int startY, int endX, int endY, Player player) { // Überprüfen, ob der Zug innerhalb des Bretts liegt if (endX < 0 || endX > 7 || endY < 0 || endY > 7) { return false; } // Prüfen, ob eine gegnerische Figur den Weg kreuzt int deltaX = abs(endX - startX); int deltaY = abs(endY - startY); // Überprüfen, ob der Zug eine gültige Diagonalbewegung ist if (deltaX == deltaY) { int xDirection = (endX - startX) > 0 ? 1 : -1; int yDirection = (endY - startY) > 0 ? 1 : -1; int x = startX + xDirection; int y = startY + yDirection; // Die Schleife, solange x nicht gleich endX ist, jedes Feld auf dem Weg des Läufers testen while (x != endX) { // Aktuelles Feld auf dem Brett prüfen, ob es leer ist if (brett[x][y] != ' ') { // Wenn das aktuelle Feld nicht leer ist, ist der Zug nicht erlaubt return false; } // Zum nächsten Feld in der Zugrichtung bewegen x += xDirection; y += yDirection; } return true; } return false; }