All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
osl::move_classifier::KingOpenMove< P > Struct Template Reference

Pの王をopen checkにする手でないことをチェック. More...

#include <kingOpenMove.h>

Public Member Functions

template<bool hasException>
bool isMemberMain (const NumEffectState &state, Ptype, Square from, Square to, Square exceptFor)
 

Static Public Member Functions

static bool isMember (const NumEffectState &state, Ptype, Square from, Square to)
 king が59 rookが51->61の時,差は OFFSET -8 -> U OFFSET +8 -> D とはなるので,一直線のような気がする.ただし,そもとも, 59 - 51はpinにはならないし,今は U -> DはopenではないとしているのでOK More...
 
static bool isMember (const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)
 

Static Private Member Functions

template<bool hasException>
static bool isMemberMain (const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)
 

Detailed Description

template<Player P>
struct osl::move_classifier::KingOpenMove< P >

Pの王をopen checkにする手でないことをチェック.

Definition at line 23 of file kingOpenMove.h.

Member Function Documentation

template<Player P>
static bool osl::move_classifier::KingOpenMove< P >::isMember ( const NumEffectState &  state,
Ptype  ,
Square  from,
Square  to 
)
inlinestatic

king が59 rookが51->61の時,差は OFFSET -8 -> U OFFSET +8 -> D とはなるので,一直線のような気がする.ただし,そもとも, 59 - 51はpinにはならないし,今は U -> DはopenではないとしているのでOK

Definition at line 33 of file kingOpenMove.h.

References osl::Board_Table, osl::BoardTable::getShort8(), osl::BoardTable::getShort8Unsafe(), and osl::Piece::isPieceNum().

Referenced by osl::search::AlphaBeta2< EvalT >::alphaBetaSearchRoot(), osl::move_classifier::SafeMove< P >::isMember(), and osl::move_action::NotKingOpenFilter< P, OrigAction >::isNotKingOpenMove().

template<Player P>
static bool osl::move_classifier::KingOpenMove< P >::isMember ( const NumEffectState &  state,
Ptype  ptype,
Square  from,
Square  to,
Square  exceptFor 
)
inlinestatic
Parameters
exceptForここからの利きは除外

Definition at line 47 of file kingOpenMove.h.

template<Player P>
template<bool hasException>
bool osl::move_classifier::KingOpenMove< P >::isMemberMain ( const NumEffectState &  state,
Ptype  ,
Square  from,
Square  to,
Square  exceptFor 
)

守っている玉が動く状況では呼ばない

openになってしまうかどうかのチェック

移動元が王の8方向でないか openにならない

そのptypeoがそのoffsetを動きとして持つか 注: 持つ => safe でない => false を返す

Definition at line 7 of file kingOpenMove.cc.

References osl::Board_Table, osl::PtypeTable::getEffect(), osl::BoardTable::getShortOffsetNotKnight(), osl::move_generator::addeffect8::hasEffect(), osl::Piece::isEmpty(), osl::Square::isOnBoard(), osl::Piece::isOnBoardByOwner(), osl::Square::isPieceStand(), osl::Ptype_Table, osl::Piece::ptypeO(), and osl::Offset::zero().

template<Player P>
template<bool hasException>
template bool osl::move_classifier::KingOpenMove< P >::isMemberMain< false > ( const NumEffectState &  state,
Ptype  ptype,
Square  from,
Square  to,
Square  exceptFor 
)
staticprivate

The documentation for this struct was generated from the following files: