version 1.4w10UCIb22
[polyglot.git] / piece.h
1 \r
2 // piece.h\r
3 \r
4 #ifndef PIECE_H\r
5 #define PIECE_H\r
6 \r
7 // includes\r
8 \r
9 #include "colour.h"\r
10 #include "util.h"\r
11 \r
12 // constants\r
13 \r
14 const int BlackPawnFlag = 1 << 2;\r
15 const int WhitePawnFlag = 1 << 3;\r
16 const int KnightFlag    = 1 << 4;\r
17 const int BishopFlag    = 1 << 5;\r
18 const int RookFlag      = 1 << 6;\r
19 const int KingFlag      = 1 << 7;\r
20 \r
21 const int PawnFlags  = BlackPawnFlag | WhitePawnFlag;\r
22 const int QueenFlags = BishopFlag | RookFlag;\r
23 \r
24 const int PieceNone64 = 0;\r
25 const int BlackPawn64 = BlackPawnFlag;\r
26 const int WhitePawn64 = WhitePawnFlag;\r
27 const int Knight64    = KnightFlag;\r
28 const int Bishop64    = BishopFlag;\r
29 const int Rook64      = RookFlag;\r
30 const int Queen64     = QueenFlags;\r
31 const int King64      = KingFlag;\r
32 \r
33 const int PieceNone256   = 0;\r
34 const int BlackPawn256   = BlackPawn64 | Black;\r
35 const int WhitePawn256   = WhitePawn64 | White;\r
36 const int BlackKnight256 = Knight64    | Black;\r
37 const int WhiteKnight256 = Knight64    | White;\r
38 const int BlackBishop256 = Bishop64    | Black;\r
39 const int WhiteBishop256 = Bishop64    | White;\r
40 const int BlackRook256   = Rook64      | Black;\r
41 const int WhiteRook256   = Rook64      | White;\r
42 const int BlackQueen256  = Queen64     | Black;\r
43 const int WhiteQueen256  = Queen64     | White;\r
44 const int BlackKing256   = King64      | Black;\r
45 const int WhiteKing256   = King64      | White;\r
46 \r
47 const int BlackPawn12   =  0;\r
48 const int WhitePawn12   =  1;\r
49 const int BlackKnight12 =  2;\r
50 const int WhiteKnight12 =  3;\r
51 const int BlackBishop12 =  4;\r
52 const int WhiteBishop12 =  5;\r
53 const int BlackRook12   =  6;\r
54 const int WhiteRook12   =  7;\r
55 const int BlackQueen12  =  8;\r
56 const int WhiteQueen12  =  9;\r
57 const int BlackKing12   = 10;\r
58 const int WhiteKing12   = 11;\r
59 \r
60 // functions\r
61 \r
62 extern void piece_init      ();\r
63 \r
64 extern bool piece_is_ok     (int piece);\r
65 \r
66 extern int  piece_make_pawn (int colour);\r
67 extern int  piece_pawn_opp  (int piece);\r
68 \r
69 extern int  piece_colour    (int piece);\r
70 extern int  piece_type      (int piece);\r
71 \r
72 extern bool piece_is_pawn   (int piece);\r
73 extern bool piece_is_knight (int piece);\r
74 extern bool piece_is_bishop (int piece);\r
75 extern bool piece_is_rook   (int piece);\r
76 extern bool piece_is_queen  (int piece);\r
77 extern bool piece_is_king   (int piece);\r
78 \r
79 extern bool piece_is_slider (int piece);\r
80 \r
81 extern int  piece_to_12     (int piece);\r
82 extern int  piece_from_12   (int piece);\r
83 \r
84 extern int  piece_to_char   (int piece);\r
85 extern int  piece_from_char (int c);\r
86 \r
87 extern bool char_is_piece   (int c);\r
88 \r
89 #endif // !defined PIECE_H\r
90 \r
91 // end of piece.h\r
92 \r