osl::checkmate::FixedDepthSolverExt Class Reference

`#include <fixedDepthSolverExt.h>`

Inheritance diagram for osl::checkmate::FixedDepthSolverExt:

## Classes

struct | SetProofPieces

## Public Member Functions

| 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)
template<osl::Player P>
const osl::checkmate::ProofDisproof | hasEscapeByMove (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces)
template<osl::Player P>
const osl::checkmate::ProofDisproof | hasCheckmateWithGuide (int depth, Move &guide, PieceStand &proof_pieces)
template<osl::Player P>
const osl::checkmate::ProofDisproof | hasCheckmateMove (int depth, Move &best_move, PieceStand &proof_pieces)
template<osl::Player P>
const osl::checkmate::ProofDisproof | hasEscapeMove (Move last_move, int depth, PieceStand &proof_pieces)
Public Member Functions inherited from osl::checkmate::FixedDepthSearcher
| FixedDepthSearcher ()
| FixedDepthSearcher (NumEffectState &s)
void | setState (NumEffectState &s)
int | getCount () const
const PieceStand | stand (Player P) const
template<Player P, class SetPieces, bool HasGuide>
const ProofDisproof | attack (int depth, Move &best_move, PieceStand &proof_pieces)
template<Player P, class SetPieces, bool HasGuide>
const ProofDisproof | attackMayUnsafe (int depth, Move &best_move, PieceStand &proof_pieces)
template<Player P, class SetPieces>
const ProofDisproof | defense (Move last_move, int depth, PieceStand &proof_pieces)
template<Player P>
const ProofDisproof | hasCheckmateMove (int depth, Move &best_move)
template<Player P>
const ProofDisproof | hasCheckmateMove (int depth)
template<Player P>
const ProofDisproof | hasEscapeMove (Move last_move, int depth)
template<Player P>
const ProofDisproof | hasEscapeByMove (Move next_move, int depth)
const ProofDisproof | hasCheckmateMoveOfTurn (int depth, Move &best_move)
const ProofDisproof | hasEscapeMoveOfTurn (Move last_move, int depth)
const ProofDisproof | hasEscapeByMoveOfTurn (Move next_move, int depth)
template<Player Defense>
void | generateBlockingWhenLiberty0 (Piece defense_king, Square attack_from, CheckMoveVector &moves) const
| 無駄合をなるべく生成しない，合駒生成
template<Player Defense>
int | blockEstimation (Square attack_from, Square defense_king) const

## Additional Inherited Members

Protected Attributes inherited from osl::checkmate::FixedDepthSearcher
NumEffectState * | state
int | count

## Detailed Description

Definition at line 11 of file fixedDepthSolverExt.h.

## Constructor & Destructor Documentation

## FixedDepthSolverExt() [1/2]

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

Definition at line 37 of file fixedDepthSolverExt.cc.

## FixedDepthSolverExt() [2/2]

osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt | ( | NumEffectState & | s | ) |

explicit

Definition at line 41 of file fixedDepthSolverExt.cc.

References osl::checkmate::FixedDepthSearcher::FixedDepthSearcher().

## Member Function Documentation

## hasCheckmateMove() [1/2]

template<osl::Player P>

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove | ( | int | depth,
|  | Move & | best_move,
|  | PieceStand & | proof_pieces )

Definition at line 112 of file fixedDepthSolverExt.cc.

References osl::checkmate::FixedDepthSearcher::attack().

## hasCheckmateMove() [2/2]

template<Player P>

const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove | ( | int | depth,
|  | Move & | best_move,
|  | PieceStand & | proof_pieces )

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

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

Referenced by osl::checkmate::Dfpn::attack(), hasCheckmateMoveOfTurn(), and osl::checkmate::Dfpn::proofOracleAttack().

## hasCheckmateMoveOfTurn()

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMoveOfTurn | ( | int | depth,
|  | Move & | best_move,
|  | PieceStand & | proof_pieces )

Definition at line 62 of file fixedDepthSolverExt.cc.

References osl::BLACK, hasCheckmateMove(), and osl::checkmate::FixedDepthSearcher::state.

## hasCheckmateWithGuide() [1/2]

template<osl::Player P>

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide | ( | int | depth,
|  | Move & | guide,
|  | PieceStand & | proof_pieces )

Definition at line 94 of file fixedDepthSolverExt.cc.

References osl::checkmate::FixedDepthSearcher::attack(), osl::Move::from(), osl::Move::isDrop(), osl::Move::isNormal(), osl::Piece::isPtype(), osl::KING, osl::Move::newCapture(), osl::Move::ptype(), osl::checkmate::FixedDepthSearcher::state, and osl::Move::to().

## hasCheckmateWithGuide() [2/2]

template<Player P>

const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide | ( | int | depth,
|  | Move & | guide,
|  | PieceStand & | proof_pieces )

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

Referenced by hasCheckmateWithGuideOfTurn().

## hasCheckmateWithGuideOfTurn()

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuideOfTurn | ( | int | depth,
|  | Move & | guide,
|  | PieceStand & | proof_pieces )

Definition at line 72 of file fixedDepthSolverExt.cc.

References osl::BLACK, hasCheckmateWithGuide(), and osl::checkmate::FixedDepthSearcher::state.

## hasEscapeByMove() [1/2]

template<osl::Player P>

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove | ( | Move | next_move,
|  | int | depth,
|  | Move & | check_move,
|  | PieceStand & | proof_pieces )

Definition at line 48 of file fixedDepthSolverExt.cc.

References osl::alt(), and osl::checkmate::FixedDepthSearcher::state.

## hasEscapeByMove() [2/2]

template<Player P>

const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove | ( | Move | next_move,
|  | int | depth,
|  | Move & | check_move,
|  | PieceStand & | proof_pieces )

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

Parameters

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

Referenced by osl::checkmate::Dfpn::defense(), hasEscapeByMoveOfTurn(), and osl::checkmate::Dfpn::proofOracleDefense().

## hasEscapeByMoveOfTurn()

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMoveOfTurn | ( | Move | next_move,
|  | int | depth,
|  | Move & | check_move,
|  | PieceStand & | proof_pieces )

Definition at line 82 of file fixedDepthSolverExt.cc.

References osl::BLACK, hasEscapeByMove(), and osl::checkmate::FixedDepthSearcher::state.

## hasEscapeMove() [1/2]

template<osl::Player P>

const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove | ( | Move | last_move,
|  | int | depth,
|  | PieceStand & | proof_pieces )

Definition at line 119 of file fixedDepthSolverExt.cc.

References osl::checkmate::FixedDepthSearcher::defense().

## hasEscapeMove() [2/2]

template<Player P>

const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove | ( | Move | last_move,
|  | int | depth,
|  | PieceStand & | proof_pieces )

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

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

Parameters

  last_move | 打ち歩詰めの判定に必要

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

- fixedDepthSolverExt.h
- fixedDepthSolverExt.cc