From 7bbf54c104bb8f7b43e6ef9553aae97397f5fd8f Mon Sep 17 00:00:00 2001 From: Francesco Bariatti <francesco.bariatti@insa-rennes.fr> Date: Mon, 29 Feb 2016 14:24:47 +0100 Subject: [PATCH] Created trivial functions --- src/game/penguin.cpp | 37 ++++++++++++++----------------------- src/game/penguin.hpp | 9 ++++++--- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/game/penguin.cpp b/src/game/penguin.cpp index 6940cf7..b454264 100644 --- a/src/game/penguin.cpp +++ b/src/game/penguin.cpp @@ -26,47 +26,39 @@ namespace game bool penguin::end_of_game() const { - return false; - //return state.first_player_win || state.second_player_win || state.total_moves == 9; + return state.nb_moves_red == 0 && state.nb_moves_blue == 0; } bool penguin::won(std::uint8_t player) const { - return false; - //if (player == CROSS) return state.first_player_win; - //return state.second_player_win; + if (player == RED) return state.score_red > state.score_blue; + return state.score_blue > state.score_red; } bool penguin::lost(std::uint8_t player) const { - return false; - /*if (player == CIRCLE) return state.first_player_win; - return state.second_player_win;*/ + if(player == RED) return state.score_red < state.score_blue; + return state.score_blue < state.score_red; } bool penguin::draw(std::uint8_t player) const { - return false; - /*if (state.first_player_win || state.second_player_win) return false; - return state.total_moves == 9;*/ + return state.score_blue == state.score_red; } uint8_t penguin::current_player() const { - return 0; - /*return state.total_moves & 1 ? CIRCLE : CROSS; // CROSS even, CIRCLE odd*/ + return state.current_player_red ? RED : BLUE; } int penguin::value(uint8_t player) const { - /*if (player == CROSS) { - return state.first_player_win ? 1 : (state.second_player_win ? -1 : 0); - } - else if (player == CIRCLE) { - return state.second_player_win ? 1 : (state.first_player_win ? -1 : 0); - } - return 0;*/ - return 0; + if (won(player)) + return 1; + else if (lost(player)) + return -1; + else + return 0; } /* Number of moves that you can play */ @@ -98,8 +90,7 @@ namespace game string penguin::player_to_string(uint8_t player) const { - //return player == CROSS ? "X" : (player == CIRCLE ? "O" : " "); - return "TODO"; + return player == RED ? "Red" : "Blue"; } diff --git a/src/game/penguin.hpp b/src/game/penguin.hpp index 620c6e6..c9c8c0a 100644 --- a/src/game/penguin.hpp +++ b/src/game/penguin.hpp @@ -25,13 +25,13 @@ namespace game uint32_t p3_blue = 58; uint32_t p4_blue = 59; - bool red_player_win = false; - bool blue_player_win = false; - int score_red = 0; int score_blue = 0; bool current_player_red = true; //True if red must play now + + int nb_moves_red = 0; //Number of moves the red player can play + int nb_moves_blue = 0; }; class penguin : public game<penguin_state> @@ -63,6 +63,9 @@ namespace game private: penguin_state state; + uint8_t RED = 0; + uint8_t BLUE = 1; + }; std::ostream& operator<<(std::ostream& os, const penguin& pen); } -- GitLab