From c09f13a3efa6258eec9f5f34c0643055239df91c Mon Sep 17 00:00:00 2001 From: fdai7492 Date: Tue, 6 Feb 2024 05:33:29 +0000 Subject: [PATCH] =?UTF-8?q?rudiment=C3=A4r=20istSchachmatt,=20Anton=20Lohr?= =?UTF-8?q?ey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Koenig.c | 11 ++++++++++- src/Koenig.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) 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