[[osl/解説]] *将棋盤 NumEffectState [#e0699b9a] ** よく使う機能 [#q995f714] ** member 関数 [#q995f714] *** いつも有効 [#bf9ddd95] - bool inCheck() 王手状態 あるマス対象の利き関係 - bool hasEffectBy(Player, Position) 利きの有無 - int countEffect 利きの数 - bool hasEffectByPiece(Piece, Position) 指定の駒の利き - Piece findCheapThreat 利きの中でもっとも安そうな駒 - mask_t effectBit(Player, Ptype, Position) 特定の駒の種類の利きを列挙 - mask_t selectLong<PTYPE>(Position, Player) 特定の駒の種類の合駒可能な利きを列挙 長い利き - Piece longEffectOfDirection(Player, Piece, Direction) ある方向から到達している長い利きの元の駒 - Position kingMobilityOfPlyaer(Player, Direction) 玉がQueenだとしてどこまで動けるか - Position getMobility(Direction,int) 駒番号の駒がどこまで動けるか(長い利きの駒のみ) 一般 - bool inCheck() 王手状態 - PieceMask getOnBoardMask(Player) 盤上の駒一覧 - PieceMask promotedPieces 成っている駒一覧 - PieceMask effectedMask(Player) 利きのある駒一覧 - PieceMask pin(Player) pin - NumBitmapEffect getEffect(Position) - bool hasEffectFromTo(PtypeO,Position,Position) 駒を仮に置いたら利きが生じるか *** 指手の更新直後のみ有効 [#xfe201ee] - BoardMask changedEffects(Player) 利きが変化したマス一覧 - NumBitmapEffect changedPieces 利きが変化した駒一覧 - bool anyEffectChanged<PTYPE>() 指定種類の駒の利きが変化したか - bool longEffectChanged<PTYPE>() 指定種類の駒の合駒可能な利きが変化したか ** その他 [#udc25020] - 手を指す ApplyMoveOfTurn::doMove(NumEffectState&, Move);