-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathEdAccess.h
More file actions
112 lines (72 loc) · 2.1 KB
/
Copy pathEdAccess.h
File metadata and controls
112 lines (72 loc) · 2.1 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#ifndef ED_ACCESS_H
#define ED_ACCESS_H
// èíòåðôåéñíûé êëàññ äëÿ äîñòóïà ê ýíäøïèëüíûì áàçàì
struct EdAccess
{
// ñòðóêòóðû äëÿ ïðåäñòàâëåíèÿ øàøå÷íîé ïîçèöèè
struct EdBoard1
{
// âñå ïîëÿ èäóò ïî ïîðÿäêó b8, d8, è ò.ä. äî g1
unsigned char board[32];
};
struct EdBoard2
{
unsigned char *wman;
unsigned wman_cnt;
unsigned char *wkings;
unsigned wkings_cnt;
unsigned char *bman;
unsigned bman_cnt;
unsigned char *bkings;
unsigned bkings_cnt;
};
// âîçâðàùàåìûå çíà÷åíèÿ
enum
{
draw = 0,
win = 10000,
lose = -10000,
not_found = 32000
};
// êîäû äëÿ îáîçíà÷åíèé øàøåê
enum
{
white = 1,
black = 2,
empty = 4,
king = 8
};
// ôëàãè äëÿ äîñòóïà ê áàçå
enum
{
in_mem = 1
};
// çàãðóçèòü áàçû
// ïîêà òàêèå òèïû èãð:
// russian
// russianlosers
// brazil
// brazillosers
// pool
// poollosers
// checkers
// checkerslosers
virtual unsigned __stdcall Load(char *game_type) = 0;
// ïîëó÷èòü òèï áàçû
virtual char * __stdcall GetBaseType() = 0;
// îöåíêà ïîçèöèè (âñåãäà õîä áåëûõ)
virtual int __stdcall GetResult(EdBoard1 *board, unsigned flags) = 0;
virtual int __stdcall GetResult(EdBoard2 *board, unsigned flags) = 0;
// ïîëó÷èòü óêàçàòåëü íà òàáëèöó ïî ìàòåðèàëó
virtual unsigned __stdcall GetTable(unsigned wm, unsigned wk, unsigned bm, unsigned bk) = 0;
// ïîëó÷èòü óêàçàòåëü íà òàáëèöó ïî ìàòåðèàëó è ïî íàèáîëåå ïðîäâèíóòîé øàøêå
virtual unsigned __stdcall GetTable(unsigned wm, unsigned wk, unsigned bm, unsigned bk, unsigned rank) = 0;
// ïðîâåðêà çàãðóæåííîñòè òàáëèöû öåëèêîì â ïàìÿòü
virtual unsigned __stdcall IsTableInMemory(unsigned table) = 0;
// ïîëó÷èòü èíäåêñ â òàáëèöå
virtual unsigned __int64 __stdcall GetIndex(EdBoard1 *board) = 0;
virtual unsigned __int64 __stdcall GetIndex(EdBoard2 *board) = 0;
// ïîëó÷èòü îöåíêó ïî óêàçàòåëþ íà òàáëèöó è èíäåêñó
virtual int __stdcall GetResult(unsigned table, unsigned __int64 index, unsigned flags) = 0;
};
#endif