クラス 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.h の 18 行で定義されています。


列挙型

列挙型の値:
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.h の 20 行で定義されています。


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

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

ntesukiMove.cc の 11 行で定義されています。

参照元 INVALID().

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

ntesukiMove.cc の 15 行で定義されています。

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

ntesukiMove.cc の 22 行で定義されています。

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

ntesukiMove.cc の 29 行で定義されています。

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

ntesukiMove.cc の 53 行で定義されています。


関数

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

ntesukiMove.cc の 235 行で定義されています。

参照先 flags, と FlagsStr.

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

ntesukiMove.cc の 83 行で定義されています。

参照先 order.

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

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

ntesukiMove.tcc の 32 行で定義されています。

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

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

ntesukiMove.tcc の 20 行で定義されています。

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

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

ntesukiMove.cc の 156 行で定義されています。

参照先 BY_SIMULATION, と flags.

bool osl::ntesuki::NtesukiMove::isCheck (  )  const
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.cc の 195 行で定義されています。

参照先 osl::BLACK.

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.cc の 186 行で定義されています。

参照先 osl::BLACK.

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

ntesukiMove.cc の 110 行で定義されています。

参照先 flags, と INTERPOSE.

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

bool osl::ntesuki::NtesukiMove::isInvalid (  )  const
bool osl::ntesuki::NtesukiMove::isLameLong (  )  const
bool osl::ntesuki::NtesukiMove::isNoPromote (  )  const
bool osl::ntesuki::NtesukiMove::isNormal (  )  const
bool osl::ntesuki::NtesukiMove::isPass (  )  const
bool osl::ntesuki::NtesukiMove::isPawnDropCheckmate (  )  const

ntesukiMove.cc の 170 行で定義されています。

参照先 flags, と PAWN_DROP_CHECKMATE_FLAG.

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

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

ntesukiMove.cc の 135 行で定義されています。

参照先 flags, と TO_OLDER_CHILD.

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

ntesukiMove.cc の 228 行で定義されています。

参照先 move.

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

ntesukiMove.cc の 37 行で定義されています。

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

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

ntesukiMove.cc の 223 行で定義されています。

参照先 move.

osl::Ptype osl::ntesuki::NtesukiMove::ptype (  )  const
void osl::ntesuki::NtesukiMove::setBySimulation (  ) 
void osl::ntesuki::NtesukiMove::setCEstimates ( unsigned short  p,
unsigned short  d 
)
void osl::ntesuki::NtesukiMove::setCheck (  ) 
template<osl::Player P>
template void osl::ntesuki::NtesukiMove::setCheckmateFail< WHITE > ( int  pass_left  )  [inline]
template<osl::Player P>
template void osl::ntesuki::NtesukiMove::setCheckmateSuccess< WHITE > ( int  pass_left  )  [inline]
void osl::ntesuki::NtesukiMove::setHEstimates ( unsigned short  p_a,
unsigned short  d_a,
unsigned short  p_d,
unsigned short  d_d 
)

ntesukiMove.cc の 176 行で定義されています。

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

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

ntesukiMove.cc の 103 行で定義されています。

参照先 flags, INTERPOSE, と ntesuki_assert.

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

ntesukiMove.cc の 116 行で定義されています。

参照先 flags, LAME_LONG, と ntesuki_assert.

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

ntesukiMove.cc の 90 行で定義されています。

参照先 flags, NOPROMOTE, と ntesuki_assert.

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

ntesukiMove.cc の 76 行で定義されています。

参照先 ntesuki_assert, と order.

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

ntesukiMove.cc の 129 行で定義されています。

参照先 flags, と TO_OLDER_CHILD.

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

ntesukiMove.cc の 215 行で定義されています。

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


フレンドと関連する関数

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

変数

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

ntesukiMove.h の 70 行で定義されています。

参照元 flagsToStream().

ntesukiMove.h の 78 行で定義されています。

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


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:26 2010に生成されました。  doxygen 1.6.3