Go search. More...
#include <GoSearch.h>
Public Member Functions | |
GoSearch (GoBoard &board, SgSearchHashTable *hash) | |
GoBoard & | Board () |
const GoBoard & | Board () const |
bool | CheckDepthLimitReached () const |
Return false, because some Go searches require it. | |
bool | EndOfGame () const |
bool | Execute (SgMove move, int *delta, int depth) |
Default implementation of SgSearch::Execute() for Go searches. | |
SgHashCode | GetHashCode () const |
Default implementation of SgSearch::GetHashCode() for Go searches. | |
SgBlackWhite | GetToPlay () const |
Default implementation of SgSearch::ToPlay() for Go searches. | |
void | SetToPlay (SgBlackWhite toPlay) |
std::string | MoveString (SgMove move) const |
void | TakeBack () |
Default implementation of SgSearch::TakeBack() for Go searches. | |
const SgSearchHashTable * | HashTable () const |
void | SetHashTable (SgSearchHashTable *hashtable) |
const SgSearchControl * | SearchControl () const |
void | SetSearchControl (SgSearchControl *control) |
void | SetProbCut (SgProbCut *probcut) |
virtual void | OnStartSearch () |
int | DepthFirstSearch (int depthLimit, int boundLo, int boundHi, SgVector< SgMove > *sequence, bool clearHash=true, SgNode *traceNode=0) |
int | DepthFirstSearch (int depthLimit, SgVector< SgMove > *sequence, bool clearHash=true, SgNode *traceNode=0) |
int | IteratedSearch (int depthMin, int depthMax, int boundLo, int boundHi, SgVector< SgMove > *sequence, bool clearHash=true, SgNode *traceNode=0) |
int | IteratedSearch (int depthMin, int depthMax, SgVector< SgMove > *sequence, bool clearHash=true, SgNode *traceNode=0) |
int | IteratedSearchDepthLimit () const |
virtual void | StartOfDepth (int depthLimit) |
bool | Aborted () const |
void | SetAbortSearch (bool fAborted=true) |
void | SetScout (bool flag=true) |
void | SetKillers (bool flag=true) |
void | SetOpponentBest (bool flag=true) |
void | SetNullMove (bool flag=true) |
void | SetNullMoveDepth (int depth) |
void | GetStatistics (SgSearchStatistics *stat) |
const SgSearchStatistics & | Statistics () const |
void | StartTime () |
void | StopTime () |
virtual void | Generate (SgVector< SgMove > *moves, int depth)=0 |
virtual int | Evaluate (bool *isExact, int depth)=0 |
virtual bool | AbortSearch () |
int | CurrentDepth () const |
SgMove | PrevMove () const |
SgMove | PrevMove2 () const |
void | InitSearch (int startDepth=0) |
bool | TraceIsOn () const |
virtual void | CreateTracer () |
void | SetTracer (SgSearchTracer *tracer) |
SgSearchTracer * | Tracer () const |
void | SetAbortFrequency (int value) |
int | SearchEngine (int depth, int alpha, int beta, SgSearchStack &stack, bool *isExactValue, bool lastNullMove=false) |
Static Public Attributes | |
static const int | DEPTH_UNIT |
static const int | MAX_DEPTH |
static const int | SG_INFINITY |
Private Attributes | |
GoBoard & | m_board |
Go search.
Defines EndOfGame to return true after two passes.
Definition at line 17 of file GoSearch.h.
GoSearch::GoSearch | ( | GoBoard & | board, | |
SgSearchHashTable * | hash | |||
) |
Definition at line 19 of file GoSearch.cpp.
References SgSearch::SetOpponentBest().
GoBoard & GoSearch::Board | ( | ) |
Definition at line 58 of file GoSearch.h.
References m_board.
Referenced by Execute(), GetHashCode(), GetToPlay(), SetToPlay(), and TakeBack().
const GoBoard & GoSearch::Board | ( | ) | const |
Definition at line 63 of file GoSearch.h.
References m_board.
bool GoSearch::CheckDepthLimitReached | ( | ) | const [virtual] |
Return false, because some Go searches require it.
Implements SgSearch.
Definition at line 26 of file GoSearch.cpp.
bool GoSearch::EndOfGame | ( | ) | const [virtual] |
Implements SgSearch.
Definition at line 31 of file GoSearch.cpp.
References SgSearch::PrevMove(), SgSearch::PrevMove2(), and SG_PASS.
bool GoSearch::Execute | ( | SgMove | move, | |
int * | delta, | |||
int | depth | |||
) | [virtual] |
Default implementation of SgSearch::Execute() for Go searches.
Executes the move is legal.
Implements SgSearch.
Definition at line 36 of file GoSearch.cpp.
References Board(), GoBoardUtil::PlayIfLegal(), SG_UNUSED(), and GoBoard::ToPlay().
SgHashCode GoSearch::GetHashCode | ( | ) | const [virtual] |
Default implementation of SgSearch::GetHashCode() for Go searches.
Implements SgSearch.
Definition at line 47 of file GoSearch.cpp.
References Board(), and GoBoard::GetHashCodeInclToPlay().
SgBlackWhite GoSearch::GetToPlay | ( | ) | const [virtual] |
Default implementation of SgSearch::ToPlay() for Go searches.
Implements SgSearch.
Definition at line 52 of file GoSearch.cpp.
References Board(), and GoBoard::ToPlay().
std::string GoSearch::MoveString | ( | SgMove | move | ) | const [virtual] |
Implements SgSearch.
Definition at line 57 of file GoSearch.cpp.
void GoSearch::SetToPlay | ( | SgBlackWhite | toPlay | ) | [virtual] |
Implements SgSearch.
Definition at line 64 of file GoSearch.cpp.
References Board(), and GoBoard::SetToPlay().
void GoSearch::TakeBack | ( | ) | [virtual] |
Default implementation of SgSearch::TakeBack() for Go searches.
Takes back the move on the board.
Implements SgSearch.
Definition at line 69 of file GoSearch.cpp.
References Board(), and GoBoard::Undo().
GoBoard& GoSearch::m_board [private] |
Definition at line 55 of file GoSearch.h.
Referenced by Board().