Browse Source

König Bewegung + Tests, Anton Lohrey

remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
75e5a54052
  1. 8
      src/Koenig.c
  2. 1
      src/Koenig.h
  3. 24
      test/test_Koenig.c

8
src/Koenig.c

@ -258,3 +258,11 @@ bool istzugerlaubt_Koenig(char** Brett, int startX, int startY, int endX, int en
return true; return true;
} }
void bewegeKoenig(char** Brett, int startX, int startY, int endX, int endY, Player player) {
if (istzugerlaubt_Koenig(Brett, startX, startY, endX, endY, player)) {
char Koenig = player == PLAYER_WHITE ? 'K' : 'k';
Brett[endY][endX] = Koenig;
Brett[startY][startX] = ' ';
}
}

1
src/Koenig.h

@ -10,4 +10,5 @@ bool GreiftKoenigAn(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 istKoenigImSchach(char** Brett, Player player); bool istKoenigImSchach(char** Brett, 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);
void bewegeKoenig(char** Brett, int startX, int startY, int endX, int endY, Player player);
#endif // Koenig #endif // Koenig

24
test/test_Koenig.c

@ -45,4 +45,28 @@ void test_istzugerlaubt_Koenig_IllegalMoves(void) {
Schachbrettspeicher_freigeben(Brett); Schachbrettspeicher_freigeben(Brett);
} }
void test_Koenigbewegung_ValidMove(void) {
char** Brett = Schachbrett_erstellen();
Brett[4][4] = 'K';
Player player = PLAYER_WHITE;
bewegeKoenig(Brett, 4, 4, 5, 4, player); // Bewege König von e5 zu e6
TEST_ASSERT_EQUAL('K', Brett[4][5]); // Schauen ob der König an der neuen stelle ist
TEST_ASSERT_EQUAL(' ', Brett[4][4]); // Schauen ob die alte stelle leer ist
Schachbrettspeicher_freigeben(Brett);
}
void test_Koenigbewegung_InvalidMove(void) {
char** Brett = Schachbrett_erstellen();
Brett[4][4] = 'K';
Player player = PLAYER_WHITE;
bewegeKoenig(Brett, 4, 4, 6, 6, player); // Versucht illegalen Zug zu machen
TEST_ASSERT_EQUAL('K', Brett[4][4]); // Schauen ob der König an der alten stelle ist
TEST_ASSERT_EQUAL(' ', Brett[4][6]); // Schauen ob die Zielstelle leer ist
Schachbrettspeicher_freigeben(Brett);
}
#endif // TEST #endif // TEST
Loading…
Cancel
Save