/usr/include/osl/checkmate/immediateCheckmate.h is in libosl-dev 0.4.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /* immediateCheckmate.h
*/
#ifndef _CHECKMATE_IMMEDIATE_CHECKMATE_H
#define _CHECKMATE_IMMEDIATE_CHECKMATE_H
#include "osl/checkmate/king8Info.h"
#include "osl/state/numEffectState.h"
#include "osl/move.h"
namespace osl
{
namespace checkmate
{
class ImmediateCheckmate
{
private:
template<Player P,bool setBestMove>
static bool hasCheckmateDrop(NumEffectState const& state,Square target,
King8Info mask,Move& bestMove);
public:
template<Player P,bool setBestMove>
static bool slowHasCheckmateMoveDirPiece(NumEffectState const& state,Square target,
King8Info mask,Direction d,Square pos,Piece p,Ptype ptype,Move& bestMove);
template<Player P,bool setBestMove>
static bool hasCheckmateMoveDirPiece(NumEffectState const& state,Square target,
King8Info mask,Direction d,Square pos,Piece p,Move& bestMove);
template<Player P,bool setBestMove>
static bool hasCheckmateMoveDir(NumEffectState const& state,Square target,
King8Info mask,Direction d,Move& bestMove);
template<Player P,bool setBestMove>
static bool hasCheckmateMove(NumEffectState const& state,Square target,
King8Info mask,Move& bestMove);
/**
* 一手詰めがある局面かどうか判定(move).
* 手番の側に王手がかかっている場合は除く
* 長い利きによる王手は生成しない.
* pinされている駒の利きがないために詰みになる例も扱わない.
* @param P(template) - 攻撃側(手番側)のプレイヤー
* @param state - 局面
*/
template<Player P>
static bool hasCheckmateMove(NumEffectState const& state);
template<Player P>
static bool hasCheckmateMove(NumEffectState const& state, King8Info);
/**
* 一手詰めがある局面かどうか判定(move).
* 手番の側に王手がかかっている場合は除く
* 長い利きによる王手は生成しない.
* pinされている駒の利きがないために詰みになる例も扱わない.
* @param P(template) - 攻撃側(手番側)のプレイヤー
* @param state - 局面
* @param best_move - ある場合に詰めの手を返す
*/
template<Player P>
static bool hasCheckmateMove(NumEffectState const& state,Move &bestMove);
template<Player P>
static bool hasCheckmateMove(NumEffectState const& state,
King8Info canMoveMask,
Square king, Move& bestMove);
/**
*
*/
static bool hasCheckmateMove(Player pl,NumEffectState const& state);
static bool hasCheckmateMove(Player pl,NumEffectState const& state,Move& bestMove);
};
} // namespace checkmate
using checkmate::ImmediateCheckmate;
} // namespace osl
#endif /* _CHECKMATE_IMMEDIATE_CHECKMATE_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|