Add forgotten files 1.4.70b
[polyglot.git] / square.h
1
2 // square.h
3
4 #ifndef SQUARE_H
5 #define SQUARE_H
6
7 // includes
8
9 #include "util.h"
10
11 // defines
12
13 #define SquareNb (16 * 12)
14
15 #define FileA 0
16 #define FileB 1
17 #define FileC 2
18 #define FileD 3
19 #define FileE 4
20 #define FileF 5
21 #define FileG 6
22 #define FileH 7
23
24 #define Rank1 0
25 #define Rank2 1
26 #define Rank3 2
27 #define Rank4 3
28 #define Rank5 4
29 #define Rank6 5
30 #define Rank7 6
31 #define Rank8 7
32
33 #define SquareNone 0
34
35 #define A1 0x24
36 #define B1 0x25
37 #define C1 0x26
38 #define D1 0x27
39 #define E1 0x28
40 #define F1 0x29
41 #define G1 0x2A
42 #define H1 0x2B
43 #define A2 0x34
44 #define B2 0x35
45 #define C2 0x36
46 #define D2 0x37
47 #define E2 0x38
48 #define F2 0x39
49 #define G2 0x3A
50 #define H2 0x3B
51 #define A3 0x44
52 #define B3 0x45
53 #define C3 0x46
54 #define D3 0x47
55 #define E3 0x48
56 #define F3 0x49
57 #define G3 0x4A
58 #define H3 0x4B
59 #define A4 0x54
60 #define B4 0x55
61 #define C4 0x56
62 #define D4 0x57
63 #define E4 0x58
64 #define F4 0x59
65 #define G4 0x5A
66 #define H4 0x5B
67 #define A5 0x64
68 #define B5 0x65
69 #define C5 0x66
70 #define D5 0x67
71 #define E5 0x68
72 #define F5 0x69
73 #define G5 0x6A
74 #define H5 0x6B
75 #define A6 0x74
76 #define B6 0x75
77 #define C6 0x76
78 #define D6 0x77
79 #define E6 0x78
80 #define F6 0x79
81 #define G6 0x7A
82 #define H6 0x7B
83 #define A7 0x84
84 #define B7 0x85
85 #define C7 0x86
86 #define D7 0x87
87 #define E7 0x88
88 #define F7 0x89
89 #define G7 0x8A
90 #define H7 0x8B
91 #define A8 0x94
92 #define B8 0x95
93 #define C8 0x96
94 #define D8 0x97
95 #define E8 0x98
96 #define F8 0x99
97 #define G8 0x9A
98 #define H8 0x9B
99
100 #define Dark  0
101 #define Light 1
102
103 // functions
104
105 extern void square_init        ();
106
107 extern bool square_is_ok       (int square);
108
109 extern int  square_make        (int file, int rank);
110
111 extern int  square_file        (int square);
112 extern int  square_rank        (int square);
113 extern int  square_side_rank   (int square, int colour);
114
115 extern int  square_from_64     (int square);
116 extern int  square_to_64       (int square);
117
118 extern bool square_is_promote  (int square);
119 extern int  square_ep_dual     (int square);
120
121 extern int  square_colour      (int square);
122
123 extern bool char_is_file       (int c);
124 extern bool char_is_rank       (int c);
125
126 extern int  file_from_char     (int c);
127 extern int  rank_from_char     (int c);
128
129 extern int  file_to_char       (int file);
130 extern int  rank_to_char       (int rank);
131
132 extern bool square_to_string   (int square, char string[], int size);
133 extern int  square_from_string (const char string[]);
134
135 #endif // !defined SQUARE_H
136
137 // end of square.h
138