My Project
core
osl
move_generator
escape_.cc
Go to the documentation of this file.
1
#include "
osl/move_generator/escape_.h
"
2
#include "
osl/move_generator/escape_.tcc
"
3
#include "
osl/move_generator/pieceOnBoard.tcc
"
4
#ifdef NDEBUG
5
# include "
osl/move_generator/capture_.tcc
"
6
#endif
7
#include "
osl/numEffectState.h
"
8
9
void
osl::GenerateEscapeKing::generate
(
const
NumEffectState
& state,
MoveVector
& out)
10
{
11
const
size_t
first = out.
size
();
12
{
13
typedef
move_action::Store
store_t
;
14
store_t
store(out);
15
const
Piece
king =state.
kingPiece
(state.
turn
());
16
move_generator::GenerateEscapeOfTurn::generate
(state, king, store);
17
}
18
MoveVector
unpromote_moves;
19
const
size_t
last = out.
size
();
20
for
(
size_t
i=first; i<last; ++i)
21
{
22
if
(out[i].hasIgnoredUnpromote())
23
unpromote_moves.
push_back
(out[i].
unpromote
());
24
}
25
out.
push_back
(unpromote_moves.
begin
(), unpromote_moves.
end
());
26
}
27
28
void
osl::GenerateEscapeKing::generateCheap
(
const
NumEffectState
& state,
MoveVector
& out)
29
{
30
if
(state.
turn
() ==
BLACK
)
31
move_generator::GenerateEscape<BLACK>::generateCheapKingEscape
(state, out);
32
else
33
move_generator::GenerateEscape<WHITE>::generateCheapKingEscape
(state, out);
34
}
35
36
namespace
osl
37
{
38
// explicit template instantiation
39
namespace
move_generator
40
{
41
template
class
Escape<move_action::Store>;
42
template
void
Escape<move_action::Store>::generate<BLACK,true,false>(
const
NumEffectState
& state,
Piece
piece,
move_action::Store
& action);
43
template
void
Escape<move_action::Store>::generate<WHITE,true,false>(
const
NumEffectState
& state,
Piece
piece,
move_action::Store
& action);
44
template
void
Escape<move_action::Store>::generateMoves<BLACK,true>(
NumEffectState
const
&,
Piece
,
Piece
,
move_action::Store
&);
45
template
void
Escape<move_action::Store>::generateMoves<WHITE,true>(
NumEffectState
const
&,
Piece
,
Piece
,
move_action::Store
&);
46
template
void
Escape<move_action::Store>::generateKingEscape<BLACK, false>(
NumEffectState
const
&,
move_action::Store
&);
47
template
void
Escape<move_action::Store>::generateKingEscape<WHITE, false>(
NumEffectState
const
&,
move_action::Store
&);
48
template
void
Escape<move_action::Store>::generateKingEscape<BLACK, true>(
NumEffectState
const
&,
move_action::Store
&);
49
template
void
Escape<move_action::Store>::generateKingEscape<WHITE, true>(
NumEffectState
const
&,
move_action::Store
&);
50
template
void
Escape<move_action::Store>::generateBlockingKing<BLACK,false>(
const
NumEffectState
&,
Piece
,
Square
,
move_action::Store
&);
51
template
void
Escape<move_action::Store>::generateBlockingKing<WHITE,false>(
const
NumEffectState
&,
Piece
,
Square
,
move_action::Store
&);
52
template
void
Escape<move_action::Store>::generateBlocking<BLACK,true>(
const
NumEffectState
&,
Piece
,
Square
,
Square
,
move_action::Store
&);
53
template
void
Escape<move_action::Store>::generateBlocking<WHITE,true>(
const
NumEffectState
&,
Piece
,
Square
,
Square
,
move_action::Store
&);
54
}
// namespace move_generator
55
}
// namespace osl
56
// ;;; Local Variables:
57
// ;;; mode:c++
58
// ;;; c-basic-offset:2
59
// ;;; End:
pieceOnBoard.tcc
osl::Square
Definition:
basic_type.h:532
osl::FixedCapacityVector::size
size_t size() const
Definition:
container.h:243
osl::GenerateEscapeKing::generateCheap
static void generateCheap(const NumEffectState &state, MoveVector &out)
Definition:
escape_.cc:28
capture_.tcc
osl::FixedCapacityVector::begin
iterator begin()
Definition:
container.h:198
osl::Piece
駒.
Definition:
basic_type.h:788
osl::GenerateEscapeKing::generate
static void generate(const NumEffectState &state, MoveVector &out)
不成の受けも作成
Definition:
escape_.cc:9
osl::move_generator::store_t
move_action::Store store_t
Definition:
addEffectWithEffect.cc:11
escape_.tcc
osl::FixedCapacityVector::end
iterator end()
Definition:
container.h:199
osl::move_action::Store
指手を MoveVector に保管
Definition:
move_action.h:16
osl::move_generator::GenerateEscape::generateCheapKingEscape
static void generateCheapKingEscape(const NumEffectState &state, FixedCapacityVector< Move, Capacity > &out)
Definition:
escape_.h:136
osl::NumEffectState
利きを持つ局面
Definition:
numEffectState.h:34
osl::BLACK
@ BLACK
Definition:
basic_type.h:9
osl::SimpleState::kingPiece
const Piece kingPiece() const
Definition:
simpleState.h:83
osl::MoveVector
Definition:
container.h:293
osl::SimpleState::turn
Player turn() const
Definition:
simpleState.h:220
numEffectState.h
osl::move_generator::GenerateEscapeOfTurn::generate
static void generate(const NumEffectState &state, Piece piece, Action &a)
Definition:
escape_.h:145
escape_.h
osl::FixedCapacityVector::push_back
void push_back(const T &e)
Definition:
container.h:204
osl::unpromote
Ptype unpromote(Ptype ptype)
ptypeがpromote後の型の時に,promote前の型を返す. promoteしていない型の時はそのまま返す
Definition:
basic_type.h:157
osl
Definition:
additionalEffect.h:6
Generated by
1.8.18