From 6a35a3cffd976f6fa9d96759e2f2bb0f784b92ac Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Thu, 30 Dec 2021 00:02:22 -0500 Subject: Pulled lots of things out of game loop --- include/othello.h | 13 +++---------- include/othello_move.h | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 include/othello_move.h (limited to 'include') 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 . + */ + +#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); -- cgit v1.2.3