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 139