You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#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) { // 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
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]; //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)) { 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
} bool bewegeSpringer(char** Brett, int startX, int startY, int endX, int endY, Player player) { // Überprüfen ob der Zug legal ist
if (!istzugerlaubt_Springer(Brett, startX, startY, endX, endY, player)) { return false; // Zug ist nicht erlaubt
}
char springer = Brett[startY][startX];
// Aktualisiere das Brett.
Brett[startY][startX] = ' '; Brett[endY][endX] = springer;
return true; }
|