Initial import of Glaurung 2.1
[stockfish] / src / color.h
1 /*
2   Glaurung, a UCI chess playing engine.
3   Copyright (C) 2004-2008 Tord Romstad
4
5   Glaurung is free software: you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation, either version 3 of the License, or
8   (at your option) any later version.
9   
10   Glaurung is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14   
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19
20 #if !defined(COLOR_H_INCLUDED)
21 #define COLOR_H_INCLUDED
22
23 ////
24 //// Includes
25 ////
26
27 #include "misc.h"
28
29
30 ////
31 //// Types
32 ////
33
34 enum Color {
35   WHITE, 
36   BLACK, 
37   COLOR_NONE
38 };
39
40
41 ////
42 //// Inline functions
43 ////
44
45 inline Color operator+ (Color c, int i) { return Color(int(c) + i); }
46 inline void operator++ (Color &c, int i) { c = Color(int(c) + 1); }
47
48 inline Color opposite_color(Color c) {
49   return Color(int(c) ^ 1);
50 }
51
52
53 ////
54 //// Prototypes
55 ////
56
57 extern bool color_is_ok(Color c);
58
59
60 #endif // !defined(COLOR_H_INCLUDED)