summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaúl Benencia <rul@kalgan.cc>2015-03-31 15:54:15 -0300
committerRaúl Benencia <rul@kalgan.cc>2015-03-31 15:54:15 -0300
commit73857333f872ec5a1d32dbd522d8a7d6f2625fac (patch)
tree8abd25c9b8ecbfd88304637c050c2dd84d76a0bd
parentbe51176891684e40c9949d89622497d8235cfb5c (diff)
define game_is_checkmate(Board, Color)
-rw-r--r--include/game.h5
-rw-r--r--lib/game.c11
2 files changed, 15 insertions, 1 deletions
diff --git a/include/game.h b/include/game.h
index 61239e7..5ab589b 100644
--- a/include/game.h
+++ b/include/game.h
@@ -8,4 +8,9 @@
*/
Board game_loop(Board);
+/*
+ * Return 1 if the received player is checkmated. Returns 0 otherwise.
+ */
+int game_is_checkmate(Board board, Color color);
+
#endif
diff --git a/lib/game.c b/lib/game.c
index 6fcc0c5..b3eb677 100644
--- a/lib/game.c
+++ b/lib/game.c
@@ -13,12 +13,19 @@ static Color _toggle_current_player(Color c) {
return WHITE;
}
+/*
+ * TODO
+ */
+int game_is_checkmate(Board board, Color color) {
+ return 0;
+}
+
Board game_loop(Board board) {
Board b = board;
Color current_player = WHITE;
Coord orig, dest;
- while (1) {
+ while (!game_is_checkmate(b, current_player)) {
print_board(b, current_player);
putchar('\n');
@@ -33,4 +40,6 @@ Board game_loop(Board board) {
b = board_make_move(b, move_init(orig, dest));
current_player = _toggle_current_player(current_player);
}
+
+ return 0;
}
nihil fit ex nihilo