diff --git a/include/MinimaxSearch.h b/include/MinimaxSearch.h index 0e7014c..0badba6 100644 --- a/include/MinimaxSearch.h +++ b/include/MinimaxSearch.h @@ -1,6 +1,7 @@ #ifndef MINIMAX_SEARCH_H #define MINIMAX_SEARCH_H +#include #include #include "Move.h" #include "BitBoard.h" @@ -13,9 +14,11 @@ class MinimaxSearch double minValue(const BitBoard &board, int currentDepth) const; double maxValue(const BitBoard &board, int currentDepth) const; + public: Move minimaxDecision(const BitBoard &board) const; - + Move minimaxDecisionStack(const BitBoard &board) const; }; #endif + diff --git a/src/BitBoard.cpp b/src/BitBoard.cpp index d061547..50a02ca 100644 --- a/src/BitBoard.cpp +++ b/src/BitBoard.cpp @@ -209,8 +209,9 @@ std::vector BitBoard::actions() const BitBoard BitBoard::result(Move move) const { - BitBoard currBoard = *this; + BitBoard currBoard(*this); int start{-1}; + for (int x : move.getMoves()) { if (start == -1) { start = x; @@ -219,6 +220,7 @@ BitBoard BitBoard::result(Move move) const start = x; } } + currBoard.m_isBlacksTurn = !m_isBlacksTurn; return currBoard; diff --git a/src/MinimaxSearch.cpp b/src/MinimaxSearch.cpp index c2487e5..85c872d 100644 --- a/src/MinimaxSearch.cpp +++ b/src/MinimaxSearch.cpp @@ -35,6 +35,8 @@ Move MinimaxSearch::minimaxDecision(const BitBoard &board) const Move bestMove; double bestMoveValue{0.0}; + std::cout << board.actions().size() << std::endl; + for (Move move : board.actions()) { if (bestMove.isEmpty()) { bestMove = move; @@ -47,6 +49,12 @@ Move MinimaxSearch::minimaxDecision(const BitBoard &board) const } } } + return bestMove; } +/*Move MinimaxSearch::minimaxDecision(const BitBoard &board) const +{ + + return nullptr; + }*/