diff --git a/include/MinimaxSearch.h b/include/MinimaxSearch.h index 09087a9..0e7014c 100644 --- a/include/MinimaxSearch.h +++ b/include/MinimaxSearch.h @@ -8,7 +8,7 @@ class MinimaxSearch { private: - static const int maxDepth = 9; + static const int maxDepth = 7; double minValue(const BitBoard &board, int currentDepth) const; double maxValue(const BitBoard &board, int currentDepth) const; diff --git a/src/MinimaxSearch.cpp b/src/MinimaxSearch.cpp index a2c015d..c2487e5 100644 --- a/src/MinimaxSearch.cpp +++ b/src/MinimaxSearch.cpp @@ -11,7 +11,7 @@ double MinimaxSearch::minValue(const BitBoard &board, int currentDepth) const { if (currentDepth == maxDepth) return board.utility(board.player()); - double v = std::numeric_limits::lowest(); + double v = std::numeric_limits::max(); for (Move move : board.actions()) { v = std::min(v, maxValue(board.result(move), currentDepth + 1)); } @@ -21,7 +21,7 @@ double MinimaxSearch::minValue(const BitBoard &board, int currentDepth) const double MinimaxSearch::maxValue(const BitBoard &board, int currentDepth) const { if (currentDepth == maxDepth) return board.utility(board.player()); - double v = std::numeric_limits::max(); + double v = std::numeric_limits::lowest(); for (Move move : board.actions()) { v = std::max(v, minValue(board.result(move), currentDepth + 1)); } diff --git a/src/main.cpp b/src/main.cpp index feead06..c4d9397 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,14 +3,16 @@ #include #include "BitBoard.h" #include "Move.h" +#include "MinimaxSearch.h" int main(int argc, const char * argv[]) { - BitBoard board(16384, 2097280, 16384); - std::vector moves = board.generateImmediateJumps(16384); - for (Move move : moves) { - for (int x : move.getMoves()) { - std::cout << x << std::endl; - } + BitBoard board; + MinimaxSearch search; + for (int i = 0; i < 20; i++) { + board.printState(); + Move next = search.minimaxDecision(board); + board = board.result(next); + std::cout << "==============================" << std::endl; } return 0; }