Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
move_evaluator_minimax_for_concepts.hpp File Reference
#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>
Include dependency graph for move_evaluator_minimax_for_concepts.hpp:
This graph shows which files directly or indirectly include this file:

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)