/usr/include/osl/ntesuki/ntesukiMoveGenerator.h is in libosl-dev 0.6.0-3.
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 | /* ntesukiMoveGenerator.h
*/
#ifndef _NTEUSKI_MOVE_GENERATOR_H
#define _NTEUSKI_MOVE_GENERATOR_H
#include "osl/ntesuki/ntesukiMoveList.h"
#include "osl/state/numEffectState.h"
namespace osl {
namespace ntesuki {
class NtesukiRecord;
/**
* ntesuki で使う move generator の base class.
* - 基本的には全ての手を生成.
* - 王手は CHECKMATE_FLAG をたてる.
* - 攻撃に関係しそうな手は ATTACK_FLAG をたてる.
*/
struct
NtesukiMoveGenerator
{
bool verbose;
NtesukiMoveGenerator(bool verbose = false);
~NtesukiMoveGenerator();
template <Player T>
void generate(const NumEffectState& state,
NtesukiMoveList& moves);
void generateSlow(const Player T,
const NumEffectState& state,
NtesukiMoveList& moves)
{
if (T == BLACK)
generate<BLACK>(state, moves);
else
generate<WHITE>(state, moves);
}
template <Player T>
void generateWithRzone(const NumEffectState& state,
NtesukiRecord *record,
int pass_left,
NtesukiMoveList& moves);
void generateWithRzoneSlow(const Player T,
const NumEffectState& state,
NtesukiRecord *record,
int pass_left,
NtesukiMoveList& moves)
{
if (T == BLACK)
generateWithRzone<BLACK>(state, record, pass_left, moves);
else
generateWithRzone<WHITE>(state, record, pass_left, moves);
}
private:
template <Player T>
void setOrder(const NumEffectState& state,
NtesukiMoveList& moves);
};
} //ntesuki
} //osl
#endif /* _NTEUSKI_MOVE_GENERATOR_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|