Fix gtest dependency for Travis CI
[purplehaze.git] / src / piece.cpp
blob5c92e7637ef1bafe185c3439730dfdc5874a5f91
1 /* Copyright (C) 2007-2012 Vincent Ollivier
3 * Purple Haze is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
8 * Purple Haze is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include <iostream>
19 #include "piece.h"
21 std::ostream& operator<<(std::ostream& out, const Piece piece)
23 return (out << piece.to_string());
26 std::string Piece::to_string() const
28 char t;
29 switch (type()) {
30 case PAWN:
31 t = 'P';
32 break;
33 case KNIGHT:
34 t = 'N';
35 break;
36 case BISHOP:
37 t = 'B';
38 break;
39 case ROOK:
40 t = 'R';
41 break;
42 case QUEEN:
43 t = 'Q';
44 break;
45 case KING:
46 t = 'K';
47 break;
48 default:
49 t = ' ';
50 break;
52 if (color() == BLACK) {
53 t = static_cast<char>(t + 'a' - 'A'); // Lower case for black pieces
55 return std::string(1, t);