osl/解説
将棋盤 NumEffectState? †
member 関数 †
いつも有効 †
あるマス対象の利き関係
- 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) 駒を仮に置いたら利きが生じるか
指手の更新直後のみ有効 †
- BoardMask? changedEffects(Player) 利きが変化したマス一覧
- NumBitmapEffect? changedPieces 利きが変化した駒一覧
- bool anyEffectChanged?<PTYPE>() 指定種類の駒の利きが変化したか
- bool longEffectChanged?<PTYPE>() 指定種類の駒の合駒可能な利きが変化したか
その他 †
- 手を指す ApplyMoveOfTurn?::doMove(NumEffectState?&, Move);
|