Xiangiqgame
AI engine for Xiangqi
|
#include <concepts/board_state_coordinator.hpp>
#include <concepts/piece_value_provider.hpp>
#include <concepts/space_info_provider.hpp>
#include <array>
#include <atomic>
#include <interfaces/base_move_evaluator.hpp>
#include <gameboard/board_data_structs.hpp>
#include <moveselection/evaluator_data_structs.hpp>
#include <functional>
#include <limits>
#include <memory>
#include <optional>
#include <unordered_map>
Go to the source code of this file.
Classes | |
class | moveselection::PreSearchMoveSorterForConcepts< G, P > |
Sorts moves based on points changed induce by single move; used by MinimaxMoveEvaluator for pre-sorting to increase likelihood of alpha/beta pruning during recursive search; uses SpaceInfoProviderConcept and PieceValueProviderConcept. More... | |
class | moveselection::MinimaxMoveEvaluatorForConcepts< H, G, P > |
Complies with MoveEvaluatorConcept, and selects move::Move using Minimax algorithm; uses SpaceInfoProviderConcept, BoardStateCoordinatorConcept, and PieceValueProviderConcept interfaces. More... | |
Namespaces | |
namespace | moveselection |
Selecting a move to execute. | |
namespace | moveselection::minimaxutils_forconcepts |
Functions | |
bool | moveselection::minimaxutils_forconcepts::ValidateMove (SearchSummary &search_summary, const MoveCollection &allowed_moves) |
void | moveselection::minimaxutils_forconcepts::UpdateAlpha (Points_t &alpha, Points_t cur_eval) |
void | moveselection::minimaxutils_forconcepts::UpdateBeta (Points_t &beta, Points_t cur_eval) |
bool | moveselection::minimaxutils_forconcepts::IsPrunableForEvaluator (Points_t &alpha, Points_t &beta, MinimaxResultType &result_type) |
bool | moveselection::minimaxutils_forconcepts::IsPrunableForEvaluatorOpponent (Points_t &alpha, Points_t &beta, MinimaxResultType &result_type) |