|
@ -62,4 +62,47 @@ void test_SchachDurchBauer(void) { |
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
freeTestBrett(Brett); |
|
|
} |
|
|
} |
|
|
|
|
|
void test_SchachDurchTurm(void) { |
|
|
|
|
|
char** Brett = ErstelleTestBrett(); |
|
|
|
|
|
|
|
|
|
|
|
// Weißer König wird von schwarzen Turm bedroht (Horizontal) |
|
|
|
|
|
Brett[4][4] = 'K'; |
|
|
|
|
|
Brett[4][7] = 'r'; |
|
|
|
|
|
TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_WHITE)); |
|
|
|
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
|
|
|
Brett = ErstelleTestBrett(); |
|
|
|
|
|
|
|
|
|
|
|
// Weißer König wird von schwarzen Turm bedroht (Vertikal) |
|
|
|
|
|
Brett[4][4] = 'K'; |
|
|
|
|
|
Brett[0][4] = 'r'; |
|
|
|
|
|
TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_WHITE)); |
|
|
|
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
|
|
|
Brett = ErstelleTestBrett(); |
|
|
|
|
|
|
|
|
|
|
|
// Schwarzer König wird von weißen Turm bedroht (Horizontal) |
|
|
|
|
|
Brett[3][3] = 'k'; |
|
|
|
|
|
Brett[3][0] = 'R'; |
|
|
|
|
|
TEST_ASSERT_TRUE(istKoenigImSchach(Brett, PLAYER_BLACK)); |
|
|
|
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
|
|
|
Brett = ErstelleTestBrett(); |
|
|
|
|
|
|
|
|
|
|
|
// Schwarzer König wird nicht bedroht weil er von einer Figur beschützt wird |
|
|
|
|
|
Brett[3][3] = 'k'; |
|
|
|
|
|
Brett[3][1] = 'R'; |
|
|
|
|
|
Brett[3][2] = 'p'; |
|
|
|
|
|
TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_BLACK)); |
|
|
|
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
|
|
|
Brett = ErstelleTestBrett(); |
|
|
|
|
|
|
|
|
|
|
|
// Weißer König nicht in gefahr |
|
|
|
|
|
Brett[4][4] = 'K'; |
|
|
|
|
|
Brett[5][5] = 'r'; |
|
|
|
|
|
TEST_ASSERT_FALSE(istKoenigImSchach(Brett, PLAYER_WHITE)); |
|
|
|
|
|
|
|
|
|
|
|
freeTestBrett(Brett); |
|
|
|
|
|
} |
|
|
#endif // TEST |
|
|
#endif // TEST |