Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
osl
progress
effect5x3d.h
Go to the documentation of this file.
1
/* effect5x3.h
2
*/
3
#ifndef PROGRESS_EFFECT5X3D_H
4
#define PROGRESS_EFFECT5X3D_H
5
6
#include "
osl/progress/progress16.h
"
7
#include "
osl/state/numEffectState.h
"
8
#include "
osl/centering5x3.h
"
9
#include "
osl/misc/carray.h
"
10
#include <algorithm>
11
namespace
osl
12
{
13
namespace
progress
14
{
21
struct
Effect5x3d
22
{
31
static
int
makeProgress
(
Player
defense,
const
NumEffectState& state,
32
Square
king);
33
static
int
makeProgress
(
Player
defense,
const
NumEffectState& state){
34
return
makeProgress
(defense,state,state.kingSquare(defense));
35
}
36
static
int
makeProgress
(
const
NumEffectState& state)
37
{
38
return
makeProgress
(
BLACK
, state) +
makeProgress
(
WHITE
, state);
39
}
43
static
const
Progress16
progress16
(
int
progress
)
44
{
45
assert(progress >= 0);
46
const
int
rank = progress / 8 - 16;
// 適当
47
return
Progress16
(
std::max
(
std::min
(rank, 15), 0));
48
}
53
static
const
Progress16
progress16each
(
int
progress
)
54
{
55
assert(progress >= 0);
56
const
int
rank = progress / 8 - 8;
// 調整中
57
return
Progress16
(
std::max
(
std::min
(rank, 15), 0));
58
}
59
private
:
60
CArray<int,2>
progresses
;
61
public
:
62
explicit
Effect5x3d
(
const
NumEffectState& state)
63
{
64
progresses
[
BLACK
]=
makeProgress
(
BLACK
, state);
65
progresses
[
WHITE
]=
makeProgress
(
WHITE
, state);
66
}
67
void
changeTurn
() {}
68
int
progress
(
Player
p)
const
{
return
progresses
[p]; }
69
const
Progress16
progress16
()
const
70
{
71
return
progress16
(
progresses
[0] +
progresses
[1]);
72
}
73
const
Progress16
progress16
(
Player
p)
const
74
{
75
return
progress16each
(
progress
(p));
76
}
77
// 必要なもの
78
void
update
(
const
NumEffectState& new_state,
Move
last_move);
79
};
80
}
// namespace progress
81
}
// namespace osl
82
83
#endif
/* PROGRESS_EFFECT5X3D_H */
84
// ;;; Local Variables:
85
// ;;; mode:c++
86
// ;;; c-basic-offset:2
87
// ;;; End:
Generated on Sun Jul 21 2013 13:37:24 by
1.8.4