3 #ifndef OSL_MOVE_PROBABILITY_STATEINFO_H 4 #define OSL_MOVE_PROBABILITY_STATEINFO_H 18 namespace move_probability
47 StateInfo() : state(0), history(0), progress16(0), dirty(true)
52 : state(&s), history(&h), progress16(p), dirty(true)
63 pin_by_opposing_sliders.
clear();
64 king8_long_pieces.
clear();
85 return std::find(pin_by_opposing_sliders.
begin(), pin_by_opposing_sliders.
end(),
86 p) != pin_by_opposing_sliders.
end();
92 int progress8()
const {
return progress16.value()/2; }
bool pinByOpposingSliders(Piece p) const
void reset(const NumEffectState &s, Progress16 p, const MoveStack &h, Move threatmate_move=Move())
BoardMask changed_effects
unsigned int possible_threatmate_ptype
const MoveStack * history
CArray2d< bool, 40, 2 > attack_shadow
PieceMask last_add_effect
void reset0(const NumEffectState &s, Progress16 p)
CArray< std::pair< Piece, Square >, 2 > checkmate_defender
FixedCapacityVector< PinnedGeneral, 64 > pinned_gs_t
CArray< Move, 2 > bookmove
CArray< pinned_gs_t, 2 > exchange_pins
ProgressN< 16 > Progress16
StateInfo(const NumEffectState &s, Progress16 p, const MoveStack &h, Move t=Move())
CArray< int, 16 > pattern_square_t
FixedCapacityVector< int, 8 > long_attack_t
bool operator==(const PinnedGeneral &l, const PinnedGeneral &r)
CArray2d< long_attack_t, 40, 8 > long_attack_cache
static std::pair< Piece, Square > findCheckmateDefender(const NumEffectState &state, Player king)
void reset1(const MoveStack &h)
static Move findShortThreatmate(const NumEffectState &, Move last_move)
void setThreatmate(Move move)
uint64_t Iking8Info(Player king) const
CArray< pattern_square_t, Square::SIZE > pattern_cache
const NumEffectState * state
CArray< PieceMask, 2 > pin
void fill(const T_simple &value=T_simple())
CArray< bool, 2 > move_candidate_exists
PieceVector pin_by_opposing_sliders
King8Info king8Info(Player pl) const
void makePinOfLongPieces()
CArray< Piece, 2 > threatened
PieceVector king8_long_pieces
void updatePinnedGenerals(Player owner)