summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2021-12-30 00:02:22 -0500
committerRobby Zambito <contact@robbyzambito.me>2021-12-30 00:02:22 -0500
commit6a35a3cffd976f6fa9d96759e2f2bb0f784b92ac (patch)
tree8c1f87ff19ab3cdb35a3450942846e1b1c736aa6 /include
parentb74a45d66405d59ea3f2891a10ee2c62f12134d9 (diff)
Pulled lots of things out of game loop
Diffstat (limited to 'include')
-rw-r--r--include/othello.h13
-rw-r--r--include/othello_move.h37
2 files changed, 40 insertions, 10 deletions
diff --git a/include/othello.h b/include/othello.h
index ec1449a..3c3027c 100644
--- a/include/othello.h
+++ b/include/othello.h
@@ -38,16 +38,7 @@ extern struct move (*player_one_get_move)(void);
extern struct move (*player_two_get_move)(void);
// Set a board to a new game state.
-void initialize_board(enum player_color ***board);
-
-// True if move is valid for current_player.
-// Otherwise false.
-bool is_valid_move(const enum player_color current_player,
- const struct move move);
-
-// True if current_player has any valid moves.
-// Otherwise false.
-bool has_valid_moves(const enum player_color current_player);
+void initialize_board(void);
// Plays a game to completion, starting with board.
enum player_color game_loop(void);
@@ -60,3 +51,5 @@ enum player_color get_current_player(void);
// Returns the current board.
const enum player_color **get_board(void);
+
+enum player_color get_winner(void);
diff --git a/include/othello_move.h b/include/othello_move.h
new file mode 100644
index 0000000..0bab641
--- /dev/null
+++ b/include/othello_move.h
@@ -0,0 +1,37 @@
+/* This file is a part of othello-ai-guile-c
+ *
+ * Copyright (C) 2021 Robby Zambito
+ *
+ * othello-ai-guile-c is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * othello-ai-guile-c is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#define _GNU_SOURCE
+
+#pragma once
+
+#include "othello.h"
+
+struct move prompt_get_move(enum player_color current_player);
+
+// True if move is valid for current_player.
+// Otherwise false.
+bool is_valid_move(const enum player_color current_player,
+ const struct move move);
+
+// True if current_player has any valid moves.
+// Otherwise false.
+bool has_valid_moves(const enum player_color current_player);
+
+/* Returns true if the move was valid */
+bool apply_move(enum player_color current_player, struct move move);