diff --git a/src/MinimaxSearch.cpp b/src/MinimaxSearch.cpp index 9acaeff..4846ba6 100644 --- a/src/MinimaxSearch.cpp +++ b/src/MinimaxSearch.cpp @@ -44,15 +44,17 @@ double MinimaxSearch::alphaBeta(bup &board, double alpha, double beta, int depth v = std::numeric_limits::lowest(); for (mup &move : board->actions()) { bup result = board->result(move); - alpha = std::max(alpha, alphaBeta(result, alpha, beta, depth + 1)); - if (beta <= alpha) return beta; + v = std::max(v, alphaBeta(result, alpha, beta, depth + 1)); + if (v >= beta) return v; + alpha = std::max(alpha, v); } } else { v = std::numeric_limits::max(); for (mup &move : board->actions()) { bup result = board->result(move); - beta = std::min(beta, alphaBeta(result, alpha, beta, depth + 1)); - if (beta <= alpha) return alpha; + v = std::min(v, alphaBeta(result, alpha, beta, depth + 1)); + if (v <= alpha) return v; + beta = std::min(beta, v); } }