Browse Source

Läufer.c Bewegungsregel hinzugefügt, Hendrik Voß

remotes/origin/Spracharbeit
fdai7723 11 months ago
parent
commit
3d28e7c068
  1. 36
      src/Laeufer.c

36
src/Laeufer.c

@ -15,13 +15,41 @@ bool istzugerlaubt_Laeufer(char** Brett, int startX, int startY, int endX, int e
return false; return false;
} }
// Überprüfen Sie, ob der Zug eine gültige Diagonalbewegung ist
// Prüfen ob eine gegnerische Figur den Weg kreuzt
// Bestimmen der Bewegungsrichtung auf der x-Achse
int xDirection;
if ((endX - startX) > 0) {
// Wenn das Ziel in x-Richtung größer als der Startpunkt ist, positiv entlang der x-Achse
xDirection = 1;
} else {
// Andernfalls negativ an der x-Achse lang
xDirection = -1;
}
// Bestimmen der Bewegungsrichtung auf der y-Achse
int yDirection;
if ((endY - startY) > 0) {
// Wenn das Ziel in y-Richtung größer als der Startpunkt ist,positiv entlang der y-Achse
yDirection = 1;
} else {
// Andernfalls negativ entlang der y-Achse
yDirection = -1;
}
// Mit dem Startpunkt anfangen und Richtung des Endpunkts bewegen
int x, y;
for (x = startX + xDirection, y = startY + yDirection; x != endX; x += xDirection, y += yDirection) {
// Aktuelles Feld auf dem Brett leer?
if (Brett[x][y] != ' ') {
// Wenn das aktuelle Feld nicht leer ist
return false;
}
}
// Überprüfen, ob der Zug eine gültige Diagonalbewegung ist
if (abs(endX - startX) == abs(endY - startY)) { if (abs(endX - startX) == abs(endY - startY)) {
return true; return true;
} }
// Prüfen ob eine gegnerische Figur den Weg kreuzt
// Wenn keines der obigen Kriterien erfüllt ist, ist der Zug ungültig // Wenn keines der obigen Kriterien erfüllt ist, ist der Zug ungültig
return false; return false;
} }

Loading…
Cancel
Save