Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
osl
checkmate
immediateCheckmateTable.h
Go to the documentation of this file.
1
/* immediateCheckmateTable.h
2
*/
3
#ifndef OSL_CHECKMATE_IMMEDIATE_CHECKMATE_TABLE_H
4
#define OSL_CHECKMATE_IMMEDIATE_CHECKMATE_TABLE_H
5
#include "
osl/checkmate/king8Info.h
"
6
#include "
osl/ptype.h
"
7
#include "
osl/direction.h
"
8
#include "
osl/misc/carray.h
"
9
#include "
osl/misc/carray2d.h
"
10
#include "
osl/container/pieceMask.h
"
11
12
namespace
osl
13
{
14
namespace
checkmate
15
{
16
class
ImmediateCheckmateTable
17
{
18
private
:
19
CArray<unsigned char,0x10000u>
dropPtypeMasks
;
20
CArray2d<unsigned char,0x100u,PTYPE_SIZE>
ptypeDropMasks
;
21
CArray2d<unsigned char,PTYPE_SIZE,8>
blockingMasks
;
22
CArray2d<unsigned short,PTYPE_SIZE,8>
noEffectMasks
;
23
public
:
24
ImmediateCheckmateTable
();
25
unsigned
char
dropPtypeMaskOf
(
unsigned
int
liberty_drop_mask)
const
26
{
27
return
dropPtypeMasks
[liberty_drop_mask];
28
}
29
unsigned
char
dropPtypeMask
(
King8Info
canMoveMask)
const
30
{
31
return
dropPtypeMaskOf
(canMoveMask.
libertyDropMask
());
32
}
33
unsigned
int
ptypeDropMask
(
Ptype
ptype,
King8Info
canMoveMask)
const
34
{
35
return
ptypeDropMasks
(canMoveMask.
liberty
(),ptype);
36
}
37
unsigned
int
blockingMask
(
Ptype
ptype,
Direction
dir)
const
38
{
39
assert(static_cast<int>(dir)<8);
40
return
blockingMasks
(ptype,dir);
41
}
42
unsigned
int
noEffectMask
(
Ptype
ptype,
Direction
dir)
const
43
{
44
assert(static_cast<int>(dir)<8);
45
return
noEffectMasks
(ptype,dir);
46
}
47
};
48
extern
const
ImmediateCheckmateTable
Immediate_Checkmate_Table
;
49
}
50
}
51
52
#endif
/* OSL_CHECKMATE_IMMEDIATE_CHECKMATE_TABLE_H */
53
// ;;; Local Variables:
54
// ;;; mode:c++
55
// ;;; c-basic-offset:2
56
// ;;; End:
57
Generated on Sun Jul 21 2013 13:37:24 by
1.8.4