Browse Source

Feldsicherheit Bauer + Test, Anton Lohrey

remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
45112bd37a
  1. 25
      src/Koenig.c
  2. 1
      src/Koenig.h
  3. 21
      test/test_Feldsicherheit.c

25
src/Koenig.c

@ -6,6 +6,28 @@
#include "Moving.h" #include "Moving.h"
#include "Koenig.h" #include "Koenig.h"
bool GreiftBauerAn(char** Brett, int x, int y, Player player) {
// Checke für weißen Bauer
if (player == PLAYER_BLACK) {
if (y > 0 && x > 0 && Brett[y - 1][x - 1] == 'P') { // Linke Diagonale
return true;
}
if (y > 0 && x < 7 && Brett[y - 1][x + 1] == 'P') { // Rechte Diagonale
return true;
}
}
// Checke für schwarzen Bauer
if (player == PLAYER_WHITE) {
if (y < 7 && x > 0 && Brett[y + 1][x - 1] == 'p') { // Linke Diagonale
return true;
}
if (y < 7 && x < 7 && Brett[y + 1][x + 1] == 'p') { // Rechte Diagonale
return true;
}
}
return false;
}
bool GreiftSpringerAn(char** Brett, int x, int y, Player player) { bool GreiftSpringerAn(char** Brett, int x, int y, Player player) {
int Springerzüge[8][2] = { int Springerzüge[8][2] = {
{2, 1}, {1, 2}, {-1, 2}, {-2, 1}, {2, 1}, {1, 2}, {-1, 2}, {-2, 1},
@ -31,6 +53,9 @@ bool istFeldUnsicher(char** Brett, int x, int y, Player player) {
if (GreiftSpringerAn(Brett, x, y, player)) { if (GreiftSpringerAn(Brett, x, y, player)) {
return true; return true;
} }
if (GreiftBauerAn(Brett, x, y, player)) {
return true;
}
return false; return false;
} }

1
src/Koenig.h

@ -1,6 +1,7 @@
#ifndef Koenig #ifndef Koenig
#define Koenig #define Koenig
#include "Spieler.h" #include "Spieler.h"
bool GreiftBauerAn(char** Brett, int x, int y, Player player);
bool GreiftSpringerAn(char** Brett, int x, int y, Player player); bool GreiftSpringerAn(char** Brett, int x, int y, Player player);
bool istFeldUnsicher(char** Brett, int x, int y, Player player); bool istFeldUnsicher(char** Brett, int x, int y, Player player);
bool istzugerlaubt_Koenig(char** Brett, int startX, int startY, int endX, int endY, Player player); bool istzugerlaubt_Koenig(char** Brett, int startX, int startY, int endX, int endY, Player player);

21
test/test_Feldsicherheit.c

@ -24,6 +24,27 @@ void freeTestBrett(char** Brett) {
free(Brett); free(Brett);
} }
void test_GreiftBauerAn(void) {
char** Brett = ErstelleTestBrett();
// Plaziert weißen Bauer auf d5 (3,4) und testet 'angriff' auf c6 (2,5) und e6 (4,5)
Brett[4][3] = 'P';
Player player = PLAYER_BLACK;
TEST_ASSERT_TRUE(GreiftBauerAn(Brett, 2, 5, player));
TEST_ASSERT_TRUE(GreiftBauerAn(Brett, 4, 5, player));
// Plaziert schwarzen Bauer auf e4 (4,3) und testet 'angriff' auf d3 (3,2) und f3 (5,2)
Brett[3][4] = 'p';
player = PLAYER_WHITE;
TEST_ASSERT_TRUE(GreiftBauerAn(Brett, 3, 2, player));
TEST_ASSERT_TRUE(GreiftBauerAn(Brett, 5, 2, player));
// Test ein Feld ohne Bedrohung
TEST_ASSERT_FALSE(GreiftBauerAn(Brett, 0, 0, player));
freeTestBrett(Brett);
}
void test_GreiftSpringerAn(void) { void test_GreiftSpringerAn(void) {
char** Brett = ErstelleTestBrett(); char** Brett = ErstelleTestBrett();

Loading…
Cancel
Save