00001 //---------------------------------------------------------------------------- 00002 /** @file GoStaticLadder.h */ 00003 //---------------------------------------------------------------------------- 00004 00005 #ifndef GO_STATICLADDER_H 00006 #define GO_STATICLADDER_H 00007 00008 #include "SgBlackWhite.h" 00009 #include "SgPoint.h" 00010 00011 class GoBoard; 00012 00013 //---------------------------------------------------------------------------- 00014 00015 /** Fast ladder computations that do not play actual moves on the board. 00016 Can be used where speed is of high importance (e.g. MC playouts). 00017 They detect only the subset of the ladders detected in GoLadder, 00018 in which the ladder path is free of stones. */ 00019 namespace GoStaticLadder 00020 { 00021 /** Return true, if block can be captured in a ladder running along the 00022 edge. */ 00023 bool IsEdgeLadder(const GoBoard& bd, SgPoint target, SgBlackWhite toPlay); 00024 00025 /** Return true, if block can be captured in a ladder. */ 00026 bool IsLadder(const GoBoard& bd, SgPoint target, SgBlackWhite toPlay); 00027 } 00028 00029 //---------------------------------------------------------------------------- 00030 00031 #endif // GO_STATICLADDER_H