クラス osl::ntesuki::NtesukiMove

Move ntesuki õ˴ؤä [詳細]

#include <ntesukiMove.h>

osl::ntesuki::NtesukiMoveのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 NtesukiMove ()
 NtesukiMove (osl::Move m)
 NtesukiMove (osl::Move m, Flags f)
 NtesukiMove (const NtesukiMove &)
 ~NtesukiMove ()
NtesukiMove operator= (const NtesukiMove &)
void setCheck ()
bool isCheck () const
void setOrder (int o)
int getOrder () const
void setInterpose ()
bool isInterpose () const
void setLameLong ()
bool isLameLong () const
void setBySimulation ()
bool isBySimulation () const
void setNoPromote ()
bool isNoPromote () const
void setToOld ()
bool isToOld () const
template<Player P>
void setImmediateCheckmate ()
bool isImmediateCheckmate () const
template<Player P>
void setCheckmateSuccess (int pass_left)
template<Player P>
bool isCheckmateSuccess (int pass_left) const
bool isCheckmateSuccessSlow (Player P, int pass_left) const
template<Player P>
void setCheckmateFail (int pass_left)
template<Player P>
bool isCheckmateFail (int pass_left) const
bool isCheckmateFailSlow (Player P, int pass_left) const
void setPawnDropCheckmate ()
bool isPawnDropCheckmate () const
void setHEstimates (unsigned short p_a, unsigned short d_a, unsigned short p_d, unsigned short d_d)
void setCEstimates (unsigned short p, unsigned short d)
bool isValid () const
bool isInvalid () const
bool isNormal () const
bool isPass () const
bool isDrop () const
Position to () const
Ptype ptype () const
Move getMove () const
bool operator== (const NtesukiMove &rhs) const
bool operator!= (const NtesukiMove &rhs) const
void flagsToStream (std::ostream &os) const

Static Public メソッド

static NtesukiMove INVALID ()

Public 変数

unsigned short h_a_proof
unsigned short h_a_disproof
unsigned short h_d_proof
unsigned short h_d_disproof

Private 型

enum  Flags {
  NONE = 0, CHECK_FLAG = 1, PAWN_DROP_CHECKMATE_FLAG = 2, IMMEDIATE_CHECKMATE = 8,
  TO_OLDER_CHILD = 16, NOPROMOTE = 32, INTERPOSE = 64, ATTACK_FLAG = 128,
  BY_SIMULATION = 256, LAME_LONG = 512, WHITE_SHIFT = 4, IS_SUCCESS_SHIFT = 16,
  IS_SUCCESS_BLACK_SHIFT = IS_SUCCESS_SHIFT, IS_SUCCESS_WHITE_SHIFT = IS_SUCCESS_SHIFT + WHITE_SHIFT, IS_SUCCESS_BLACK_BASE = 1 << IS_SUCCESS_BLACK_SHIFT, IS_SUCCESS_WHITE_BASE = 1 << IS_SUCCESS_WHITE_SHIFT,
  IS_SUCCESS_BLACK_MASK = 0xf * IS_SUCCESS_BLACK_BASE, IS_SUCCESS_WHITE_MASK = 0xf * IS_SUCCESS_WHITE_BASE, IS_FAIL_SHIFT = 24, IS_FAIL_BLACK_SHIFT = IS_FAIL_SHIFT,
  IS_FAIL_WHITE_SHIFT = IS_FAIL_SHIFT + WHITE_SHIFT, IS_FAIL_BLACK_BASE = 1 << IS_FAIL_SHIFT, IS_FAIL_WHITE_BASE = 1 << (IS_FAIL_SHIFT + WHITE_SHIFT), IS_FAIL_BLACK_MASK = 0xf * IS_FAIL_BLACK_BASE,
  IS_FAIL_WHITE_MASK = 0xfLL * IS_FAIL_WHITE_BASE
}

Private メソッド

template<Player P>
int is_success_flag (int pass_left) const
template<Player P>
int is_fail_flag (int pass_left) const

Private 変数

osl::Move move
int flags
int order

Static Private 変数

static std::string FlagsStr []

フレンド

std::ostream & operator<< (std::ostream &os, const NtesukiMove &move)


説明

Move ntesuki õ˴ؤä

ntesukiMove.h18 行で定義されています。


列挙型

列挙型の値:
NONE 
CHECK_FLAG 
PAWN_DROP_CHECKMATE_FLAG  If this move is a check move.

IMMEDIATE_CHECKMATE  If this move is a pawn drop checkmate foul.

TO_OLDER_CHILD  If this move is an immidiate checkmate.

NOPROMOTE  If the distance of the parent is larger than the child
INTERPOSE  A promotable PAWN,ROOK,BISHOP move without promotion
ATTACK_FLAG  Aigoma
BY_SIMULATION  Attack move candidate
LAME_LONG  Value of the node after this move determined by simulation
WHITE_SHIFT 
IS_SUCCESS_SHIFT 
IS_SUCCESS_BLACK_SHIFT  This move leads to checkmate success.

IS_SUCCESS_WHITE_SHIFT 
IS_SUCCESS_BLACK_BASE 
IS_SUCCESS_WHITE_BASE 
IS_SUCCESS_BLACK_MASK 
IS_SUCCESS_WHITE_MASK 
IS_FAIL_SHIFT 
IS_FAIL_BLACK_SHIFT  This move leads to checkmate fail.

IS_FAIL_WHITE_SHIFT 
IS_FAIL_BLACK_BASE 
IS_FAIL_WHITE_BASE 
IS_FAIL_BLACK_MASK 
IS_FAIL_WHITE_MASK 

ntesukiMove.h20 行で定義されています。


コンストラクタとデストラクタ

osl::ntesuki::NtesukiMove::NtesukiMove (  ) 

ntesukiMove.cc11 行で定義されています。

参照元 INVALID().

osl::ntesuki::NtesukiMove::NtesukiMove ( osl::Move  m  ) 

ntesukiMove.cc15 行で定義されています。

osl::ntesuki::NtesukiMove::NtesukiMove ( osl::Move  m,
Flags  f 
)

ntesukiMove.cc22 行で定義されています。

osl::ntesuki::NtesukiMove::NtesukiMove ( const NtesukiMove m  ) 

ntesukiMove.cc29 行で定義されています。

osl::ntesuki::NtesukiMove::~NtesukiMove (  ) 

ntesukiMove.cc53 行で定義されています。


関数

template<osl::Player P>
int osl::ntesuki::NtesukiMove::is_success_flag ( int  pass_left  )  const [inline, private]

ntesukiMove.tcc20 行で定義されています。

参照先 osl::BLACK, IS_SUCCESS_BLACK_SHIFT, IS_SUCCESS_WHITE_SHIFT, ntesuki_assert, と osl::WHITE.

template<osl::Player P>
int osl::ntesuki::NtesukiMove::is_fail_flag ( int  pass_left  )  const [inline, private]

ntesukiMove.tcc32 行で定義されています。

参照先 osl::BLACK, IS_FAIL_BLACK_SHIFT, IS_FAIL_WHITE_SHIFT, と ntesuki_assert.

osl::ntesuki::NtesukiMove osl::ntesuki::NtesukiMove::operator= ( const NtesukiMove m  ) 

ntesukiMove.cc37 行で定義されています。

参照先 flags, h_a_disproof, h_a_proof, h_d_disproof, h_d_proof, move, と order.

osl::ntesuki::NtesukiMove osl::ntesuki::NtesukiMove::INVALID (  )  [static]

void osl::ntesuki::NtesukiMove::setCheck (  ) 

bool osl::ntesuki::NtesukiMove::isCheck (  )  const

void osl::ntesuki::NtesukiMove::setOrder ( int  o  ) 

ntesukiMove.cc76 行で定義されています。

参照先 ntesuki_assert, と order.

int osl::ntesuki::NtesukiMove::getOrder (  )  const

ntesukiMove.cc83 行で定義されています。

参照先 order.

参照元 osl::ntesuki::operator<<(), と osl::ntesuki::NtesukiSearcher::selectMoveAttack().

void osl::ntesuki::NtesukiMove::setInterpose (  ) 

ntesukiMove.cc103 行で定義されています。

参照先 flags, INTERPOSE, と ntesuki_assert.

bool osl::ntesuki::NtesukiMove::isInterpose (  )  const

ntesukiMove.cc110 行で定義されています。

参照先 flags, と INTERPOSE.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveDefense().

void osl::ntesuki::NtesukiMove::setLameLong (  ) 

ntesukiMove.cc116 行で定義されています。

参照先 flags, LAME_LONG, と ntesuki_assert.

bool osl::ntesuki::NtesukiMove::isLameLong (  )  const

void osl::ntesuki::NtesukiMove::setBySimulation (  ) 

bool osl::ntesuki::NtesukiMove::isBySimulation (  )  const

ntesukiMove.cc156 行で定義されています。

参照先 BY_SIMULATION, と flags.

void osl::ntesuki::NtesukiMove::setNoPromote (  ) 

ntesukiMove.cc90 行で定義されています。

参照先 flags, NOPROMOTE, と ntesuki_assert.

bool osl::ntesuki::NtesukiMove::isNoPromote (  )  const

void osl::ntesuki::NtesukiMove::setToOld (  ) 

ntesukiMove.cc129 行で定義されています。

参照先 flags, と TO_OLDER_CHILD.

bool osl::ntesuki::NtesukiMove::isToOld (  )  const

ntesukiMove.cc135 行で定義されています。

参照先 flags, と TO_OLDER_CHILD.

template<osl::Player P>
template void osl::ntesuki::NtesukiMove::setImmediateCheckmate< WHITE > (  )  [inline]

bool osl::ntesuki::NtesukiMove::isImmediateCheckmate (  )  const

template<osl::Player P>
template void osl::ntesuki::NtesukiMove::setCheckmateSuccess< WHITE > ( int  pass_left  )  [inline]

template<osl::Player P>
bool osl::ntesuki::NtesukiMove::isCheckmateSuccess ( int  pass_left  )  const [inline]

bool osl::ntesuki::NtesukiMove::isCheckmateSuccessSlow ( Player  P,
int  pass_left 
) const

ntesukiMove.cc186 行で定義されています。

参照先 osl::BLACK.

template<osl::Player P>
template void osl::ntesuki::NtesukiMove::setCheckmateFail< WHITE > ( int  pass_left  )  [inline]

template<osl::Player P>
bool osl::ntesuki::NtesukiMove::isCheckmateFail ( int  pass_left  )  const [inline]

bool osl::ntesuki::NtesukiMove::isCheckmateFailSlow ( Player  P,
int  pass_left 
) const

ntesukiMove.cc195 行で定義されています。

参照先 osl::BLACK.

void osl::ntesuki::NtesukiMove::setPawnDropCheckmate (  ) 

bool osl::ntesuki::NtesukiMove::isPawnDropCheckmate (  )  const

ntesukiMove.cc170 行で定義されています。

参照先 flags, と PAWN_DROP_CHECKMATE_FLAG.

参照元 osl::ntesuki::NtesukiSearcher::selectMoveAttack().

void osl::ntesuki::NtesukiMove::setHEstimates ( unsigned short  p_a,
unsigned short  d_a,
unsigned short  p_d,
unsigned short  d_d 
)

ntesukiMove.cc176 行で定義されています。

参照先 h_a_disproof, h_a_proof, h_d_disproof, と h_d_proof.

void osl::ntesuki::NtesukiMove::setCEstimates ( unsigned short  p,
unsigned short  d 
)

bool osl::ntesuki::NtesukiMove::isValid (  )  const

bool osl::ntesuki::NtesukiMove::isInvalid (  )  const

bool osl::ntesuki::NtesukiMove::isNormal (  )  const

bool osl::ntesuki::NtesukiMove::isPass (  )  const

bool osl::ntesuki::NtesukiMove::isDrop (  )  const

osl::Position osl::ntesuki::NtesukiMove::to (  )  const

ntesukiMove.cc215 行で定義されています。

参照先 move, と osl::Move::to().

osl::Ptype osl::ntesuki::NtesukiMove::ptype (  )  const

osl::Move osl::ntesuki::NtesukiMove::getMove (  )  const

bool osl::ntesuki::NtesukiMove::operator== ( const NtesukiMove rhs  )  const

ntesukiMove.cc223 行で定義されています。

参照先 move.

bool osl::ntesuki::NtesukiMove::operator!= ( const NtesukiMove rhs  )  const

ntesukiMove.cc228 行で定義されています。

参照先 move.

void osl::ntesuki::NtesukiMove::flagsToStream ( std::ostream &  os  )  const

ntesukiMove.cc235 行で定義されています。

参照先 flags, と FlagsStr.

参照元 osl::ntesuki::operator<<().


フレンドと関連する関数

std::ostream& operator<< ( std::ostream &  os,
const NtesukiMove move 
) [friend]

ntesukiMove.cc247 行で定義されています。


変数

std::string osl::ntesuki::NtesukiMove::FlagsStr [static, private]

ntesukiMove.h70 行で定義されています。

参照元 flagsToStream().

ntesukiMove.h78 行で定義されています。

参照元 getOrder(), operator=(), と setOrder().


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:17 2009に生成されました。  doxygen 1.5.6