From 9e791e4e927b837c8647765ada6f25be1ac086cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Tue, 31 Mar 2015 15:45:21 -0300 Subject: introduce game loop function --- lib/game.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lib/game.c (limited to 'lib/game.c') diff --git a/lib/game.c b/lib/game.c new file mode 100644 index 0000000..6fcc0c5 --- /dev/null +++ b/lib/game.c @@ -0,0 +1,36 @@ +#include + +#include "board.h" +#include "game.h" +#include "input.h" +#include "move.h" +#include "print.h" + +static Color _toggle_current_player(Color c) { + if (c == WHITE) + return BLACK; + else + return WHITE; +} + +Board game_loop(Board board) { + Board b = board; + Color current_player = WHITE; + Coord orig, dest; + + while (1) { + print_board(b, current_player); + + putchar('\n'); + if (current_player == WHITE) + printf("White's turn. \n"); + else + printf("Black's turn. \n"); + + orig = input_orig_coord(); + dest = input_dest_coord(); + + b = board_make_move(b, move_init(orig, dest)); + current_player = _toggle_current_player(current_player); + } +} -- cgit v1.2.3