#include "penguin_heuristic.hpp" #include "penguin.hpp" using namespace std; namespace mcts { float penguin_heuristic::get_value(const game::penguin& game, uint8_t move) const { return 0.f; } int penguin_heuristic::get_count(const game::penguin& game, uint8_t move) const { return 1; } float go_left_up_heuristic::get_value(const game::penguin& game, uint8_t move) const { std::shared_ptr<game::penguin> played = game::copy(game); played->play(move); game::penguin_state state = played->get_state(); uint32_t* penguins = state.peng_blue; if(!state.current_player_red) { penguins = state.peng_red; } uint32_t sPos = 0; for(int i=0; i< 4; i++) { sPos+=PENGUIN_POS(penguins[i]); } double res = (double) (-(-118.0 + sPos) / 118.0); return res; } int go_left_up_heuristic::get_count(const game::penguin& game, uint8_t move) const { return 100000000; } }