osl::checkmate::King8Info Class Reference

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
osl::checkmate::King8Info Class Reference

敵玉の8近傍の状態を表す. More...

`#include <king8Info.h>`

Collaboration diagram for osl::checkmate::King8Info:
[legend]

## Public Member Functions
| King8Info (uint64_t v)
uint64_t | uint64Value () const
unsigned int | dropCandidate () const
| 0-7 bit 目を返す More...
unsigned int | liberty () const
| 8-15 bit 目を 0-7bitにshiftして返す More...
unsigned int | libertyDropMask () const
| 0-15bit More...
unsigned int | libertyCandidate () const
| 16-23 bit 目を 0-7bitにshiftして返す More...
unsigned int | moveCandidate2 () const
| 24-31 bit 目を 0-7bitにshiftして返す More...
unsigned int | spaces () const
unsigned int | moves () const
unsigned int | libertyCount () const
| libertyの数 More...
template<Player P, Direction Dir>
unsigned int | moveCandidateDir (NumEffectState const &state, Square target) const
template<Player P>
unsigned int | countMoveCandidate (NumEffectState const &state) const
unsigned int | countMoveCandidate (Player player, NumEffectState const &state) const
template<Player P>
unsigned int | moveCandidateMask (NumEffectState const &state) const
template<Player P>
bool | hasMoveCandidate (NumEffectState const &state) const
template<osl::Player P, osl::Direction Dir>
uint64_t | hasEffectMask (NumEffectState const &state, Square target, PieceMask pinned, PieceMask on_board_defense)
template<osl::Player P>
const osl::checkmate::King8Info | make (NumEffectState const &state, Square target, PieceMask pinned)
template<osl::Player P>
const osl::checkmate::King8Info | make (NumEffectState const &state, Square target)

## Static Public Member Functions
template<Player P>
static const King8Info | make (NumEffectState const &state, Square king, PieceMask pinned)
template<Player P>
static const King8Info | make (NumEffectState const &state, Square king)
static const King8Info | make (Player attack, NumEffectState const &state)
| alt(attack) のking について計算 More...
static const King8Info | makeWithPin (Player attack, NumEffectState const &state, const PieceMask &pinned)
| alt(attack) のking について計算. More...

## Static Private Member Functions
template<Player P, Direction Dir>
static uint64_t | hasEffectMask (NumEffectState const &state, Square target, PieceMask pinned, PieceMask on_board_defense)
| alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する. More...

## Private Attributes
uint64_t | value

## Detailed Description

敵玉の8近傍の状態を表す.

王手がかかっている場合も含むことにする． Dirは相手の玉に対してDir方向で王手をかける位置 0-7 : 敵玉以外の利きがなく，自分の利きがある空白 (駒を打つ候補となりうる点) 8-15 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす) 16-23 : 空白か味方の駒(利き次第では移動可能になる) 24-31 : 敵玉以外の利きがなく，自分の利きがある空白，敵駒 (OLD 24-31 : 敵玉以外の利きがなく，自分の利きが2つ以上ある空白，敵駒 (駒を動かす候補となりうる点) ) 32-39 : 空白(駒打ち王手の候補) 40-47 : 味方の利き(kingの利きも含んでいる)がある空白，敵駒 48-51 : 敵玉がDirに移動可能(王手がかかっている場合は長い利きも延ばす)な数

Definition at line 30 of file king8Info.h.

## Constructor & Destructor Documentation

osl::checkmate::King8Info::King8Info | ( | uint64_t | v) |  |
| inlineexplicit

Definition at line 34 of file king8Info.h.

Referenced by make().

## Member Function Documentation

template<Player P>

unsigned int osl::checkmate::King8Info::countMoveCandidate | ( | NumEffectState const & | state) |  | const
| inline

Definition at line 97 of file king8Info.h.

Referenced by osl::checkmate::ProofNumberTable::disproofAfterAllCheck().

unsigned int osl::checkmate::King8Info::countMoveCandidate | ( | Player | player,
|  | NumEffectState const & | state
| ) |  | const
| inline

Definition at line 110 of file king8Info.h.

References osl::BLACK.

unsigned int osl::checkmate::King8Info::dropCandidate | ( | ) |  | const
| inline

0-7 bit 目を返す

Definition at line 51 of file king8Info.h.

References value.

Referenced by osl::checkmate::ProofNumberTable::disproofAfterAllCheck(), osl::search::BreakThreatmate::generate(), and osl::checkmate::operator<<().

template<osl::Player P, osl::Direction Dir>

uint64_t osl::checkmate::King8Info::hasEffectMask | ( | NumEffectState const & | state,
|  | Square | target,
|  | PieceMask | pinned,
|  | PieceMask | on_board_defense
| ) |  |

Definition at line 68 of file king8Info.cc.

References osl::Piece::canMoveOn(), osl::Piece::isEdge(), osl::Piece::isEmpty(), osl::Piece::isOnBoardByOwner(), and target.

template<Player P, Direction Dir>

static uint64_t osl::checkmate::King8Info::hasEffectMask | ( | NumEffectState const & | state,
|  | Square | target,
|  | PieceMask | pinned,
|  | PieceMask | on_board_defense
| ) |  |
| staticprivate

alt(P)の玉にDirの方向で迫るcanMoveMaskを計算する.

Parameters

  P(template) | - 攻撃側のplayer
  Dir(template) | - 敵玉に迫る方向(shortの8方向)
  state | - 初期状態
  target | - alt(P)の玉があるpotision

template<Player P>

bool osl::checkmate::King8Info::hasMoveCandidate | ( | NumEffectState const & | state) |  | const
| inline

Definition at line 130 of file king8Info.h.

Referenced by osl::threatmate::TreePredictor::predict().

unsigned int osl::checkmate::King8Info::liberty | ( | ) |  | const
| inline

8-15 bit 目を 0-7bitにshiftして返す

Definition at line 56 of file king8Info.h.

References value.

Referenced by osl::move_probability::KingBlockade::blockAll(), osl::checkmate::ProofNumberTable::countLiberty(), osl::checkmate::ProofNumberTable::countLibertyLong(), osl::checkmate::ProofNumberTable::countLibertyShortNotKnight(), osl::eval::ml::King8EffectAll::eval(), osl::move_generator::piece_on_board::generateKing(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::move_probability::KingBlockade::match(), osl::checkmate::operator<<(), and osl::checkmate::ImmediateCheckmateTable::ptypeDropMask().

unsigned int osl::checkmate::King8Info::libertyCandidate | ( | ) |  | const
| inline

16-23 bit 目を 0-7bitにshiftして返す

Definition at line 66 of file king8Info.h.

References value.

Referenced by osl::checkmate::operator<<().

unsigned int osl::checkmate::King8Info::libertyCount | ( | ) |  | const
| inline

libertyの数

Definition at line 84 of file king8Info.h.

References value.

Referenced by osl::checkmate::PureLibertyEstimator::attackH(), osl::checkmate::ProofNumberTable::libertyAfterAllDrop(), main(), and osl::move_probability::KingBlockade::match().

unsigned int osl::checkmate::King8Info::libertyDropMask | ( | ) |  | const
| inline

0-15bit

Definition at line 61 of file king8Info.h.

References value.

Referenced by osl::checkmate::ImmediateCheckmateTable::dropPtypeMask(), osl::move_probability::StateInfo::findCheckmateDefender(), and osl::checkmate::ProofNumberTable::libertyAfterAllDrop().

template<Player P>

static const King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state,
|  | Square | king,
|  | PieceMask | pinned
| ) |  |
| static

Referenced by osl::state::NumEffectState::isConsistent().

template<Player P>

static const King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state,
|  | Square | king
| ) |  |
| static

const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | Player | attack,
|  | NumEffectState const & | state
| ) |  |
| static

alt(attack) のking について計算

Definition at line 150 of file king8Info.cc.

References osl::alt(), and osl::BLACK.

template<osl::Player P>

const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state,
|  | Square | target,
|  | PieceMask | pinned
| ) |  |

Definition at line 112 of file king8Info.cc.

References osl::alt(), osl::Board_Table, osl::BoardTable::getShort8(), King8Info(), osl::Piece::square(), and target.

template<osl::Player P>

const osl::checkmate::King8Info osl::checkmate::King8Info::make | ( | NumEffectState const & | state,
|  | Square | target
| ) |  |

Definition at line 144 of file king8Info.cc.

References osl::alt(), and target.

const osl::checkmate::King8Info osl::checkmate::King8Info::makeWithPin | ( | Player | attack,
|  | NumEffectState const & | state,
|  | const PieceMask & | pinned
| ) |  |
| static

alt(attack) のking について計算.

pinが既に求まっている

Definition at line 160 of file king8Info.cc.

References osl::alt(), and osl::BLACK.

unsigned int osl::checkmate::King8Info::moveCandidate2 | ( | ) |  | const
| inline

24-31 bit 目を 0-7bitにshiftして返す

Definition at line 71 of file king8Info.h.

References value.

Referenced by osl::checkmate::operator<<().

template<Player P, Direction Dir>

unsigned int osl::checkmate::King8Info::moveCandidateDir | ( | NumEffectState const & | state,
|  | Square | target
| ) |  | const
| inline

Definition at line 89 of file king8Info.h.

References osl::effect_util::AdditionalEffect::hasEffect(), and value.

template<Player P>

unsigned int osl::checkmate::King8Info::moveCandidateMask | ( | NumEffectState const & | state) |  | const
| inline

Definition at line 116 of file king8Info.h.

References osl::D, osl::DL, osl::DR, osl::L, osl::R, osl::U, osl::UL, and osl::UR.

Referenced by osl::checkmate::ProofNumberTable::libertyAfterAllMove().

unsigned int osl::checkmate::King8Info::moves | ( | ) |  | const
| inline

Definition at line 79 of file king8Info.h.

References value.

Referenced by osl::checkmate::Dfpn::attack().

unsigned int osl::checkmate::King8Info::spaces | ( | ) |  | const
| inline

Definition at line 75 of file king8Info.h.

References value.

Referenced by osl::move_probability::StateInfo::findCheckmateDefender().

uint64_t osl::checkmate::King8Info::uint64Value | ( | ) |  | const
| inline

Definition at line 48 of file king8Info.h.

References value.

Referenced by osl::checkmate::detail::blockingDiagonalAttack(), osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece(), osl::checkmate::detail::hasCheckmateMoveKnight(), osl::state::NumEffectState::isConsistent(), osl::checkmate::EdgeTable::resetEdgeFromLiberty(), osl::checkmate::detail::slowCheckDrop(), and osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().

## Member Data Documentation

uint64_t osl::checkmate::King8Info::value
| private

Definition at line 32 of file king8Info.h.

Referenced by dropCandidate(), liberty(), libertyCandidate(), libertyCount(), libertyDropMask(), moveCandidate2(), moveCandidateDir(), moves(), spaces(), and uint64Value().

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

- king8Info.h
- king8Info.cc