Browse Source

refactoring: Laeufer.c Regel vereinfacht, Hendrik Voß

remotes/origin/Spracharbeit
fdai7723 11 months ago
parent
commit
14d484ff78
  1. 19
      src/Laeufer.c

19
src/Laeufer.c

@ -20,15 +20,22 @@ bool istzugerlaubt_Laeufer(char** Brett, int startX, int startY, int endX, int e
int xDirection = (endX - startX) > 0 ? 1 : -1; int xDirection = (endX - startX) > 0 ? 1 : -1;
int yDirection = (endY - startY) > 0 ? 1 : -1; int yDirection = (endY - startY) > 0 ? 1 : -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?
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] != ' ') { if (Brett[x][y] != ' ') {
// Wenn das aktuelle Feld nicht leer ist
// Wenn das aktuelle Feld nicht leer ist, ist der Zug nicht erlaubt.
return false; return false;
} }
}
// Wenn das getestete Feld leer ist, zum nächsten Feld in der Zugrichtung bewegen.
x += xDirection;
y += yDirection;
} // Schleife Ende
// Überprüfen, ob der Zug eine gültige Diagonalbewegung ist // Überprüfen, ob der Zug eine gültige Diagonalbewegung ist
if (abs(endX - startX) == abs(endY - startY)) { if (abs(endX - startX) == abs(endY - startY)) {

Loading…
Cancel
Save