|
@ -7,6 +7,10 @@ |
|
|
#include "Springer.h" |
|
|
#include "Springer.h" |
|
|
|
|
|
|
|
|
bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int endY, Player player) { |
|
|
bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int endY, Player player) { |
|
|
|
|
|
// Schauen ob der zug auf dem Spielbrett passiert |
|
|
|
|
|
if (endX < 0 || endX >= 8 || endY < 0 || endY >= 8) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
// Berechnung des unterschieds der start und endpositionen |
|
|
// Berechnung des unterschieds der start und endpositionen |
|
|
int dx = abs(endX - startX); |
|
|
int dx = abs(endX - startX); |
|
|
int dy = abs(endY - startY); |
|
|
int dy = abs(endY - startY); |
|
@ -17,6 +21,16 @@ bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int |
|
|
if ((dx == 2 && dy == 1) || (dx == 1 && dy == 2)) { |
|
|
if ((dx == 2 && dy == 1) || (dx == 1 && dy == 2)) { |
|
|
|
|
|
|
|
|
char EndPosition = Brett[endY][endX]; |
|
|
char EndPosition = Brett[endY][endX]; |
|
|
|
|
|
//schaut ob die Endposition von einer eigenen Figur belegt ist |
|
|
|
|
|
if (player == PLAYER_WHITE) { |
|
|
|
|
|
if (isupper(EndPosition) && EndPosition != ' ') { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
} else { // PLAYER_BLACK |
|
|
|
|
|
if (islower(EndPosition) && EndPosition != ' ') { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (player == PLAYER_WHITE && islower(EndPosition)) { |
|
|
if (player == PLAYER_WHITE && islower(EndPosition)) { |
|
|
return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist |
|
|
return true; // Erlaubter zug weil die Position leer ist oder von einer gegnerischen Figur belegt ist |
|
|