|
|
@ -0,0 +1,31 @@ |
|
|
|
#include <stdio.h> |
|
|
|
#include <stdlib.h> |
|
|
|
#include <stdbool.h> |
|
|
|
#include <ctype.h> |
|
|
|
#include "spieler.h" |
|
|
|
#include "Moving.h" |
|
|
|
#include "Springer.h" |
|
|
|
|
|
|
|
bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int endY, Player player) { |
|
|
|
// Berechnung des unterschieds der start und endpositionen |
|
|
|
int dx = abs(endX - startX); |
|
|
|
int dy = abs(endY - startY); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Schaut ob die bewegung eine L-form hat |
|
|
|
if ((dx == 2 && dy == 1) || (dx == 1 && dy == 2)) { |
|
|
|
|
|
|
|
char EndPosition = Brett[endY][endX]; |
|
|
|
|
|
|
|
if (player == PLAYER_WHITE && islower(EndPosition)) { |
|
|
|
return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist |
|
|
|
} else if (player == PLAYER_BLACK && isupper(EndPosition)) { |
|
|
|
return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist |
|
|
|
} else if (EndPosition == ' ') { |
|
|
|
return true; // Erlaubter zug weil die Zielposition leer ist |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return false; // kein erlaubter zug |
|
|
|
} |