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