Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
moveselection Namespace Reference

Selecting a move to execute. More...

Namespaces

namespace  minimaxutils
 Free functions used by moveselection::MinimaxMoveEvaluator.
 
namespace  minimaxutils_forconcepts
 

Classes

class  EqualScoreMoves
 Holds a gameboard::MoveCollection in which all gameboard::Move have the same value (as perceived by a MoveEvaluator), and the value of the shared score. More...
 
class  HumanMoveEvaluatorFactory
 
class  HumanMoveEvaluatorForConcepts
 
class  MinimaxCalcResult
 Data structure that holds a moveselection::EqualScoreMoves and other search-related info obtained from a call to moveselection::MinimaxMoveEvaluator.MinimaxRecursive. More...
 
class  MinimaxMoveEvaluator
 Implements MoveEvaluator interface, and selects move::Move using Minimax algorithm; uses SpaceInfoProvider, BoardStateCoordinator, and PieceValueProvider interfaces. More...
 
class  MinimaxMoveEvaluatorFactory
 
class  MinimaxMoveEvaluatorForConcepts
 Complies with MoveEvaluatorConcept, and selects move::Move using Minimax algorithm; uses SpaceInfoProviderConcept, BoardStateCoordinatorConcept, and PieceValueProviderConcept interfaces. More...
 
class  PreSearchMoveSorter
 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. More...
 
class  PreSearchMoveSorterForConcepts
 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  RandomMoveEvaluator
 Implements gameboard::MoveEvaluator interface. More...
 
class  RandomMoveEvaluatorFactory
 
class  RandomMoveEvaluatorForConcepts
 Complies with MoveEvaluatorConcept. More...
 
class  ResultDepthCounts
 Container for storing and updating data in a moveselection::ResultDepthCountsData_t array of vectors. More...
 
struct  ScoredMove
 A gameboard::Move, and an associated score calculated by a MoveEvaluator. More...
 
struct  SearchSummaries
 Stores a moveselection::SearchSummary for each moveselection::MinimaxMoveEvaluator.ImplementSelectMove made for a particular player during a game. More...
 
class  SearchSummary
 Stores data collected during a single call to moveselection::MinimaxMoveEvaluator.ImplementSelectMove. More...
 
class  TranspositionTableSearchResult
 Container for storing a moveselection::MinimaxCalcResult retrieved by a call to boardstate::SingleZobristCoordinator.ImplementGetTrData. More...
 

Typedefs

typedef std::array< std::vector< int >, MinimaxResultType::kMax+1 > ResultDepthCountsData_t
 Array of vectors for storing counts of moveselection::MinimaxResultType for each posible remaining search depth.
 

Enumerations

enum  MinimaxResultType : uint16_t {
  kUnknown = 0 , kTrTableHit = 1 , kEvaluatorLoses = 4 , kEvaluatorWins = 5 ,
  kDraw = 6 , kFullyEvaluatedNode = 7 , kStandardLeaf = 8 , kAlphaPrune = 9 ,
  kBetaPrune = 10 , kMin = kUnknown , kMax = kBetaPrune
}
 

Variables

const uint16_t kNumResultTypes {7}
 

Detailed Description

Selecting a move to execute.

Todo:
Consider giving RandomMoveEvaluatorForConcepts its own random generator that gets used during each call to SelectMove.

Typedef Documentation

◆ ResultDepthCountsData_t

typedef std::array<std::vector<int>, MinimaxResultType::kMax + 1> moveselection::ResultDepthCountsData_t

Array of vectors for storing counts of moveselection::MinimaxResultType for each posible remaining search depth.

Outer (array) index -> moveslection::MinimaxResultType; inner (vector) index -> remaining search depth when result was obtained.

Definition at line 127 of file evaluator_data_structs.hpp.

Enumeration Type Documentation

◆ MinimaxResultType

Enumerator
kUnknown 
kTrTableHit 
kEvaluatorLoses 
kEvaluatorWins 
kDraw 
kFullyEvaluatedNode 
kStandardLeaf 
kAlphaPrune 
kBetaPrune 
kMin 
kMax 

Definition at line 36 of file evaluator_data_structs.hpp.

Variable Documentation

◆ kNumResultTypes

const uint16_t moveselection::kNumResultTypes {7}

Definition at line 49 of file evaluator_data_structs.hpp.