[[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);



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS