構成 | Public メソッド

クラス osl::checkmate::FixedDepthSolverExt

#include <fixedDepthSolverExt.h>

osl::checkmate::FixedDepthSolverExtに対する継承グラフ
Inheritance graph
[凡例]
osl::checkmate::FixedDepthSolverExtのコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

構成

struct  SetProofPieces

Public メソッド

 FixedDepthSolverExt ()
 FixedDepthSolverExt (NumEffectState &s)
template<Player P>
const ProofDisproof hasCheckmateMove (int depth, Move &best_move, PieceStand &proof_pieces)
 stateがPから詰む局面かを返す.
template<Player P>
const ProofDisproof hasCheckmateWithGuide (int depth, Move &guide, PieceStand &proof_pieces)
 guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い
template<Player P>
const ProofDisproof hasEscapeMove (Move last_move, int depth, PieceStand &proof_pieces)
 stateがPによって詰んでいる局面かを返す.
template<Player P>
const ProofDisproof hasEscapeByMove (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces)
 next_move を指して逃げられるかどうかを調べる
const ProofDisproof hasCheckmateMoveOfTurn (int depth, Move &best_move, PieceStand &proof_pieces)
const ProofDisproof hasCheckmateWithGuideOfTurn (int depth, Move &guide, PieceStand &proof_pieces)
const ProofDisproof hasEscapeByMoveOfTurn (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces)

説明

fixedDepthSolverExt.h11 行で定義されています。


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

osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt (  ) 

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

osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt ( NumEffectState s  )  [explicit]

fixedDepthSolverExt.cc42 行で定義されています。


関数

template<osl::Player P>
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove< WHITE > ( int  depth,
Move best_move,
PieceStand proof_pieces 
)

stateがPから詰む局面かを返す.

stateの手番はPと一致しているという前提

fixedDepthSolverExt.cc113 行で定義されています。

参照元 osl::checkmate::Dfpn::attack(), と osl::checkmate::Dfpn::proofOracleAttack().

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMoveOfTurn ( int  depth,
Move best_move,
PieceStand proof_pieces 
)
template<osl::Player P>
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide ( int  depth,
Move guide,
PieceStand proof_pieces 
)

guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い

fixedDepthSolverExt.cc95 行で定義されています。

参照先 osl::Move::from(), osl::Move::isDrop(), osl::Move::isNormal(), osl::Piece::isPtype(), osl::KING, osl::Move::newCapture(), osl::SimpleState::pieceOnBoard(), osl::Move::ptype(), osl::checkmate::FixedDepthSearcher::state, と osl::Move::to().

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuideOfTurn ( int  depth,
Move guide,
PieceStand proof_pieces 
)
template<osl::Player P>
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove< WHITE > ( Move  next_move,
int  depth,
Move check_move,
PieceStand proof_pieces 
)

next_move を指して逃げられるかどうかを調べる

引数:
check_move 詰の場合の攻撃側の指手
depth next_move を指した後からカウント

fixedDepthSolverExt.cc49 行で定義されています。

参照先 osl::alt(), osl::NumEffectState::makeUnmakeMove(), と osl::checkmate::FixedDepthSearcher::state.

参照元 osl::checkmate::Dfpn::defense(), と osl::checkmate::Dfpn::proofOracleDefense().

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMoveOfTurn ( Move  next_move,
int  depth,
Move check_move,
PieceStand proof_pieces 
)
template<osl::Player P>
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove< WHITE > ( Move  last_move,
int  depth,
PieceStand proof_pieces 
)

stateがPによって詰んでいる局面かを返す.

王手がかかっていない時には呼ばない stateの手番はalt(P)と一致しているという前提 stateはPによって王手がかかっているという前提

引数:
last_move 打ち歩詰めの判定に必要

fixedDepthSolverExt.cc120 行で定義されています。


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義