|
@ -42,4 +42,43 @@ void test_istzugerlaubt_Springer_IllegalMove(void) { |
|
|
|
|
|
|
|
|
Schachbrettspeicher_freigeben(Brett); |
|
|
Schachbrettspeicher_freigeben(Brett); |
|
|
} |
|
|
} |
|
|
|
|
|
void test_bewegeSpringer(void) { |
|
|
|
|
|
char **Brett = Schachbrett_erstellen(); |
|
|
|
|
|
bool Ergebnis; |
|
|
|
|
|
|
|
|
|
|
|
// Scenario 1: Legaler Zug, weißer Springer von b1 zu c3 |
|
|
|
|
|
Ergebnis = bewegeSpringer(Brett, 1, 0, 2, 2, PLAYER_WHITE); |
|
|
|
|
|
TEST_ASSERT_TRUE(Ergebnis); |
|
|
|
|
|
TEST_ASSERT_EQUAL_CHAR('N', Brett[2][2]); |
|
|
|
|
|
TEST_ASSERT_EQUAL_CHAR(' ', Brett[0][1]); |
|
|
|
|
|
|
|
|
|
|
|
Schachbrettspeicher_freigeben(Brett); |
|
|
|
|
|
Brett = Schachbrett_erstellen(); |
|
|
|
|
|
|
|
|
|
|
|
// Scenario 2: Illegaler Zug , vom Brett |
|
|
|
|
|
Ergebnis = bewegeSpringer(Brett, 7, 6, 8, 8, PLAYER_WHITE); |
|
|
|
|
|
TEST_ASSERT_FALSE(Ergebnis); |
|
|
|
|
|
|
|
|
|
|
|
// Scenario 3: Legaler Zug, schwarzer Springer von g8 zu f6 |
|
|
|
|
|
Ergebnis = bewegeSpringer(Brett, 6, 7, 5, 5, PLAYER_BLACK); |
|
|
|
|
|
TEST_ASSERT_TRUE(Ergebnis); |
|
|
|
|
|
TEST_ASSERT_EQUAL_CHAR('n', Brett[5][5]); |
|
|
|
|
|
TEST_ASSERT_EQUAL_CHAR(' ', Brett[7][6]); |
|
|
|
|
|
|
|
|
|
|
|
Schachbrettspeicher_freigeben(Brett); |
|
|
|
|
|
Brett = Schachbrett_erstellen(); |
|
|
|
|
|
|
|
|
|
|
|
// Scenario 4: Illegaler Zug, schwarzer Springer bewegt sich auf andere schwarze Figur |
|
|
|
|
|
Brett[5][5] = 'n'; // ein anderer Springer als Hindernis |
|
|
|
|
|
Ergebnis = bewegeSpringer(Brett, 6, 7, 5, 5, PLAYER_BLACK); |
|
|
|
|
|
TEST_ASSERT_FALSE(Ergebnis); |
|
|
|
|
|
|
|
|
|
|
|
// Scenario 5: Legaler Zug zum einnehmen feindlicher Figur |
|
|
|
|
|
Brett[5][5] = 'P'; // Weißer Bauer auf F6 |
|
|
|
|
|
Ergebnis = bewegeSpringer(Brett, 6, 7, 5, 5, PLAYER_BLACK); |
|
|
|
|
|
TEST_ASSERT_TRUE(Ergebnis); |
|
|
|
|
|
TEST_ASSERT_EQUAL_CHAR('n', Brett[5][5]); |
|
|
|
|
|
|
|
|
|
|
|
Schachbrettspeicher_freigeben(Brett); |
|
|
|
|
|
} |
|
|
#endif // TEST |
|
|
#endif // TEST |