All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Static Public Member Functions | Static Private Member Functions
osl::search::QuiescenceGenerator< P > Struct Template Reference

QuiescenceSearch で使う指手生成 More...

#include <quiescenceGenerator.h>

List of all members.

Static Public Member Functions

template<Ptype PTYPE, bool has_dont_capture>
static void capture (const NumEffectState &, MoveVector &moves, Piece dont_capture)
 P が敵の PTYPE を取る手を生成する.
static void capture (const NumEffectState &, Square target, MoveVector &moves)
 P が敵の target を取る手を生成する.
static void capture1 (const NumEffectState &state, Square target, MoveVector &moves)
 P が敵の target を取る手を最大1手生成する.
static void promote (const NumEffectState &, PieceMask pins, MoveVector &moves)
template<Ptype PTYPE>
static void promote (const NumEffectState &, MoveVector &moves)
template<Ptype PTYPE, size_t N>
static void promoteN (const NumEffectState &, MoveVector &moves, const HistoryTable &table)
static void check (const NumEffectState &, PieceMask pins, MoveVector &moves, bool no_liberty=false)
static void check (const NumEffectState &, PieceMask pins, bool no_liberty, const Square8 &sendoffs, MoveVector &moves)
static void escapeKing (const NumEffectState &state, MoveVector &moves)
static bool escapeKingInTakeBack (const NumEffectState &state, MoveVector &moves, bool check_by_lance)
static void dropMajorPiece (const NumEffectState &state, MoveVector &moves)
static void dropMajorPiece3 (const NumEffectState &state, MoveVector &moves, const HistoryTable &table)
static void attackMajorPiece (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void escapeAll (const NumEffectState &state, MoveVector &moves)
static void escapeNormalPiece (const NumEffectState &state, Piece escape, MoveVector &moves, bool add_support_only=false)
template<class EvalT >
static void escapeFromLastMove (const NumEffectState &state, Move last_move, MoveVector &moves)
 直前に指手から逃げる
template<class EvalT >
static void escapeFromLastMoveOtherThanPawn (const NumEffectState &state, Move last_move, MoveVector &moves)
static bool escapeByMoveOnly (const NumEffectState &state, Piece piece, MoveVector &moves)
static void attackGoldWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void attackWithKnight (const NumEffectState &state, PieceMask pins, Square attack_from, bool has_knight, MoveVector &moves)
static void attackSilverWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void attackKnightWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void advanceBishop (const NumEffectState &state, MoveVector &moves)
 角が前に進む.
template<Direction DIR>
static void advanceBishop (const NumEffectState &state, const Square from, MoveVector &moves)
static void attackKing8 (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void attackToPinned (const NumEffectState &state, PieceMask pins, MoveVector &moves)
static void utilizePromoted (const NumEffectState &state, Piece target, MoveVector &moves)
static void breakThreatmate (const NumEffectState &state, Move threatmate, PieceMask pins, MoveVector &moves)
static void kingWalk (const NumEffectState &state, MoveVector &moves)

Static Private Member Functions

static void attackMajorPieceSecondSelection (bool target_has_support, const MoveVector &src, MoveVector &out)
static void attackMajorPieceFirstSelection (const NumEffectState &state, PieceMask pins, const MoveVector &all_moves, MoveVector &moves, MoveVector &expensive_drops)
static void attackMajorPieceZerothSelection (const NumEffectState &state, const MoveVector &src, Square target, MoveVector &open_out, MoveVector &out)

Detailed Description

template<Player P>
struct osl::search::QuiescenceGenerator< P >

QuiescenceSearch で使う指手生成

Definition at line 28 of file quiescenceGenerator.h.


Member Function Documentation

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::advanceBishop ( const NumEffectState &  state,
MoveVector &  moves 
) [static]

角が前に進む.

覗いて成を受けにくい読み抜けを防ぐ

Definition at line 1408 of file quiescenceGenerator.tcc.

References osl::BISHOP, osl::Piece::isOnBoardByOwner(), moves, osl::Piece::ptype(), and osl::Piece::square().

template<osl::Player P>
template<osl::Direction DIR>
void osl::search::QuiescenceGenerator< P >::advanceBishop ( const NumEffectState &  state,
const Square  from,
MoveVector &  moves 
) [static]

Definition at line 1429 of file quiescenceGenerator.tcc.

References osl::BISHOP, and osl::PTYPE_EMPTY.

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackGoldWithPawn ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackKing8 ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackKnightWithPawn ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackMajorPiece ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackMajorPieceFirstSelection ( const NumEffectState &  state,
PieceMask  pins,
const MoveVector &  all_moves,
MoveVector &  moves,
MoveVector &  expensive_drops 
) [inline, static, private]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackMajorPieceSecondSelection ( bool  target_has_support,
const MoveVector &  src,
MoveVector &  out 
) [inline, static, private]

Definition at line 127 of file quiescenceGenerator.tcc.

References osl::Move::ptype(), and osl::eval::Ptype_Eval_Table.

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackMajorPieceZerothSelection ( const NumEffectState &  state,
const MoveVector &  src,
Square  target,
MoveVector &  open_out,
MoveVector &  out 
) [static, private]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackSilverWithPawn ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackToPinned ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::attackWithKnight ( const NumEffectState &  state,
PieceMask  pins,
Square  attack_from,
bool  has_knight,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::breakThreatmate ( const NumEffectState &  state,
Move  threatmate,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
template<osl::Ptype PTYPE, bool has_dont_capture>
template void osl::search::QuiescenceGenerator< P >::capture< ROOK, false > ( const NumEffectState &  ,
MoveVector &  moves,
Piece  dont_capture 
) [static]

P が敵の PTYPE を取る手を生成する.

Parameters:
dont_captureこれを取る手は除く

Definition at line 22 of file quiescenceGenerator.tcc.

References osl::alt(), osl::BISHOP, osl::ntesuki::capture(), osl::move_generator::capture::generate(), osl::Piece::isPiece(), osl::KNIGHT, osl::LANCE, moves, osl::PAWN, osl::Piece::ptype(), osl::Piece::square(), and target.

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::capture ( const NumEffectState &  state,
Square  target,
MoveVector &  moves 
) [inline, static]

P が敵の target を取る手を生成する.

Definition at line 148 of file quiescenceGenerator.h.

References osl::move_generator::capture::generate().

template<Player P>
static void osl::search::QuiescenceGenerator< P >::capture1 ( const NumEffectState &  state,
Square  target,
MoveVector &  moves 
) [inline, static]

P が敵の target を取る手を最大1手生成する.

Definition at line 45 of file quiescenceGenerator.h.

References osl::move_generator::GenerateCapture::generate1().

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::check ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves,
bool  no_liberty = false 
) [static]

Definition at line 505 of file quiescenceGenerator.tcc.

References osl::alt().

Referenced by main().

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::check ( const NumEffectState &  state,
PieceMask  pins,
bool  no_liberty,
const Square8 &  sendoffs,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::dropMajorPiece ( const NumEffectState &  state,
MoveVector &  moves 
) [static]

Definition at line 1504 of file quiescenceGenerator.tcc.

template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::dropMajorPiece3 ( const NumEffectState &  state,
MoveVector &  moves,
const HistoryTable table 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::escapeAll ( const NumEffectState &  state,
MoveVector &  moves 
) [static]
template<osl::Player P>
bool osl::search::QuiescenceGenerator< P >::escapeByMoveOnly ( const NumEffectState &  state,
Piece  piece,
MoveVector &  moves 
) [static]
template<osl::Player P>
template<class EvalT >
template void osl::search::QuiescenceGenerator< P >::escapeFromLastMove< eval::ml::OpenMidEndingEval > ( const NumEffectState &  state,
Move  last_move,
MoveVector &  moves 
) [static]
template<osl::Player P>
template<class EvalT >
void osl::search::QuiescenceGenerator< P >::escapeFromLastMoveOtherThanPawn ( const NumEffectState &  state,
Move  last_move,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::escapeKing ( const NumEffectState &  state,
MoveVector &  moves 
) [static]
template<osl::Player P>
bool osl::search::QuiescenceGenerator< P >::escapeKingInTakeBack ( const NumEffectState &  state,
MoveVector &  moves,
bool  check_by_lance 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::escapeNormalPiece ( const NumEffectState &  state,
Piece  escape,
MoveVector &  moves,
bool  add_support_only = false 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::kingWalk ( const NumEffectState &  state,
MoveVector &  moves 
) [static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::promote ( const NumEffectState &  state,
PieceMask  pins,
MoveVector &  moves 
) [static]
template<osl::Player P>
template<osl::Ptype PTYPE>
void osl::search::QuiescenceGenerator< P >::promote ( const NumEffectState &  state,
MoveVector &  moves 
) [inline, static]

Definition at line 161 of file quiescenceGenerator.h.

References moves.

template<osl::Player P>
template<osl::Ptype PTYPE, size_t N>
void osl::search::QuiescenceGenerator< P >::promoteN ( const NumEffectState &  state,
MoveVector &  moves,
const HistoryTable table 
) [inline, static]
template<osl::Player P>
void osl::search::QuiescenceGenerator< P >::utilizePromoted ( const NumEffectState &  state,
Piece  target,
MoveVector &  moves 
) [static]

The documentation for this struct was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines