14 #define BlackPawnFlag (1 << 2)
\r
15 #define WhitePawnFlag (1 << 3)
\r
16 #define KnightFlag (1 << 4)
\r
17 #define BishopFlag (1 << 5)
\r
18 #define RookFlag (1 << 6)
\r
19 #define KingFlag (1 << 7)
\r
21 #define PawnFlags (BlackPawnFlag | WhitePawnFlag)
\r
22 #define QueenFlags (BishopFlag | RookFlag)
\r
24 #define PieceNone64 (0)
\r
25 #define BlackPawn64 (BlackPawnFlag)
\r
26 #define WhitePawn64 (WhitePawnFlag)
\r
27 #define Knight64 (KnightFlag)
\r
28 #define Bishop64 (BishopFlag)
\r
29 #define Rook64 (RookFlag)
\r
30 #define Queen64 (QueenFlags)
\r
31 #define King64 (KingFlag)
\r
33 #define PieceNone256 (0)
\r
34 #define BlackPawn256 (BlackPawn64 | Black)
\r
35 #define WhitePawn256 (WhitePawn64 | White)
\r
36 #define BlackKnight256 (Knight64 | Black)
\r
37 #define WhiteKnight256 (Knight64 | White)
\r
38 #define BlackBishop256 (Bishop64 | Black)
\r
39 #define WhiteBishop256 (Bishop64 | White)
\r
40 #define BlackRook256 (Rook64 | Black)
\r
41 #define WhiteRook256 (Rook64 | White)
\r
42 #define BlackQueen256 (Queen64 | Black)
\r
43 #define WhiteQueen256 (Queen64 | White)
\r
44 #define BlackKing256 (King64 | Black)
\r
45 #define WhiteKing256 (King64 | White)
\r
47 #define BlackPawn12 (0)
\r
48 #define WhitePawn12 (1)
\r
49 #define BlackKnight12 (2)
\r
50 #define WhiteKnight12 (3)
\r
51 #define BlackBishop12 (4)
\r
52 #define WhiteBishop12 (5)
\r
53 #define BlackRook12 (6)
\r
54 #define WhiteRook12 (7)
\r
55 #define BlackQueen12 (8)
\r
56 #define WhiteQueen12 (9)
\r
57 #define BlackKing12 (10)
\r
58 #define WhiteKing12 (11)
\r
62 extern void piece_init ();
\r
64 extern bool piece_is_ok (int piece);
\r
66 extern int piece_make_pawn (int colour);
\r
67 extern int piece_pawn_opp (int piece);
\r
69 extern int piece_colour (int piece);
\r
70 extern int piece_type (int piece);
\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
79 extern bool piece_is_slider (int piece);
\r
81 extern int piece_to_12 (int piece);
\r
82 extern int piece_from_12 (int piece);
\r
84 extern int piece_to_char (int piece);
\r
85 extern int piece_from_char (int c);
\r
87 extern bool char_is_piece (int c);
\r
89 #endif // !defined PIECE_H
\r