bishbosh-0.1.2.0: Plays chess.
Safe HaskellNone
LanguageHaskell2010

BishBosh.Input.SearchOptions

Description

AUTHOR
Dr. Alistair Ward
DESCRIPTION
Defines configurable options related to the process of searching for the optimal move.
Synopsis

Types

Type-synonyms

type SortOnStandardOpeningMoveFrequency = Bool Source #

Sort moves on the decreasing frequency of occurrence in standard openings.

type HammingDistance = Int Source #

The optional minimum Hamming-distance between the random numbers from which Zobrist-hashes are composed.

type MaybeRetireAfterNMoves = Maybe NMoves Source #

The number of full moves (one for each player) after which to retire killer moves.

type TrapRepeatedPositions = Bool Source #

Whether to short-circuit the fitness-evaluation of positions which have been visited before in the current game.

type MaybeUseTranspositions = Maybe (NMoves, NPlies) Source #

The number of full moves (one for each player) after which to retire transpositions & the search-depth beneath which they aren't recorded at all.

type Reader = Reader SearchOptions Source #

Self-documentation.

Data-types

data SearchOptions Source #

Defines options related to searching for a move.

Constants

tag :: String Source #

Used to qualify XML.

searchDepthTag :: String Source #

Used to qualify XML.

minimumSearchDepth :: NPlies Source #

The constant minimum permissible search-depth.

defaultSearchDepth :: NPlies Source #

  • The constant default search-depth.
  • CAVEAT: this is rather arbitrary.

Functions

Constructor

mkSearchOptions Source #

Arguments

:: SortOnStandardOpeningMoveFrequency 
-> Maybe CaptureMoveSortAlgorithm 
-> Maybe HammingDistance

The optional lower bound on the Hamming-distance between the random numbers used to compose Zobrist hashes from positions.

-> MaybeRetireAfterNMoves

The number of full moves back from the current position, after which to retire killer-moves.

-> TrapRepeatedPositions 
-> UsePondering 
-> MaybeUseTranspositions

The number of full moves after which to retire transpositions, & the search-depth beneath which transpositions aren't recorded.

-> StandardOpeningOptions 
-> SearchDepthByLogicalColour 
-> SearchOptions 

Smart constructor.

Accessors

getSearchDepth :: SearchOptions -> NPlies Source #

Get either player's search-depth, using a default value when none are defined.

maybeMinimumTranspositionSearchDepth :: SearchOptions -> Maybe NPlies Source #

The search-depth beneath which transpositions aren't recorded.

identifyAutomatedPlayers :: SearchOptions -> [LogicalColour] Source #

Extract those logical colours for which a search-depth has been defined, which implies that the corresponding player is automated.

Mutators

setSearchDepth :: NPlies -> Transformation Source #

Mutator.

swapSearchDepth :: Transformation Source #

Swap the logical colour associated with any searchDepth currently assigned.

Predicates

recordKillerMoves :: SearchOptions -> RecordKillerMoves Source #

Whether killer-moves are to be recorded.