Browse Source

Springer hinzugefügt + Test, Anton Lohrey

remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
5b5d0d3969
  1. 31
      src/Springer.c
  2. 7
      src/Springer.h
  3. 18
      test/test_Springer.c

31
src/Springer.c

@ -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
}

7
src/Springer.h

@ -0,0 +1,7 @@
#ifndef Springer
#define Springer
#include "spieler.h"
bool istzugerlaubt_Springer(char** Brett, int startX, int startY, int endX, int endY, Player player);
#endif // Springer

18
test/test_Springer.c

@ -0,0 +1,18 @@
#ifdef TEST
#include "unity.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "Springer.h"
#include "Schachbrett.h"
#include "Spieler.h"
void test_istzugerlaubt_Springer_LegalMove(void) {
char **Brett = Schachbrett_erstellen();
// Teste legaler Zug für weißen Springer : b1 zu a3
TEST_ASSERT_TRUE(istzugerlaubt_Springer(Brett, 1, 0, 0, 2, PLAYER_WHITE));
Schachbrettspeicher_freigeben(Brett);
}
#endif // TEST
Loading…
Cancel
Save