diff --git a/src/Koenig.c b/src/Koenig.c index c51ad4a..ecd0dce 100644 --- a/src/Koenig.c +++ b/src/Koenig.c @@ -350,4 +350,13 @@ bool KannKoenigEntkommen(char** Brett, int koenigX, int koenigY, Player player) } } return false; -} \ No newline at end of file +} +bool istSchachmatt(char** Brett, int koenigX, int koenigY, Player player) { + // Überprüfen, ob der König im Schach steht + if (istKoenigImSchach(Brett, player)) { + return true; // Nicht Schachmatt, wenn der König nicht im Schach steht. + } + + // Überprüfen, ob der König entkommen kann + return !KannKoenigEntkommen(Brett, koenigX, koenigY, player); +} diff --git a/src/Koenig.h b/src/Koenig.h index cd99f44..f2c2637 100644 --- a/src/Koenig.h +++ b/src/Koenig.h @@ -15,4 +15,5 @@ void bewegeKoenig(char** Brett, int startX, int startY, int endX, int endY, Play bool kannRochieren(char** Brett, int startX, int startY, Player player, Spielstatus* status, bool kingside); void rochiere(char** Brett, Player player, bool kingside, Spielstatus* status); bool KannKoenigEntkommen(char** Brett, int koenigX, int koenigY, Player player); +bool istSchachmatt(char** Brett, int koenigX, int koenigY, Player player); #endif // Koenig