00001 //---------------------------------------------------------------------------- 00002 /** @file VCUtils.hpp 00003 */ 00004 //---------------------------------------------------------------------------- 00005 00006 #ifndef VCUTILS_HPP 00007 #define VCUTILS_HPP 00008 00009 #include "Hex.hpp" 00010 #include "HexBoard.hpp" 00011 #include "StoneBoard.hpp" 00012 #include "VC.hpp" 00013 00014 _BEGIN_BENZENE_NAMESPACE_ 00015 00016 //---------------------------------------------------------------------------- 00017 00018 /** Utilities on VCs. */ 00019 namespace VCUtils 00020 { 00021 /** Returns mustplay for color to move. 00022 @todo Document what the mustplay is! 00023 */ 00024 bitset_t GetMustplay(const HexBoard& brd, HexColor color); 00025 00026 /** Returns true if carrier defines a valid bridge to the 00027 edge. Edge and the other endpoint are stored if it is valid. 00028 */ 00029 bool ValidEdgeBridge(const StoneBoard& brd, 00030 const bitset_t& carrier, 00031 HexPoint& endpoint, 00032 HexPoint& edge); 00033 } 00034 00035 //---------------------------------------------------------------------------- 00036 00037 _END_BENZENE_NAMESPACE_ 00038 00039 #endif // VCUTILS_HPP