]> git.sesse.net Git - stockfish/blobdiff - src/piece.cpp
Move SplitPoint array under its thread
[stockfish] / src / piece.cpp
index 382ed6456312604c73e2ceea1f9ad40b37c9776e..b287994975cbd5360d8f531758fa82931e4cb96b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   Stockfish, a UCI chess playing engine derived from Glaurung 2.1
   Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
-  Copyright (C) 2008 Marco Costalba
+  Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
 
   Stockfish is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 //// Includes
 ////
 
-#include <cstring>
+#include <string>
 
 #include "piece.h"
 
+using namespace std;
 
 ////
 //// Functions
 
 /// Translating piece types to/from English piece letters
 
-static const char PieceChars[] = " pnbrqk";
+static const string PieceChars(" pnbrqk PNBRQK");
 
-int piece_type_to_char(PieceType pt, bool upcase) {
-  return upcase? toupper(PieceChars[pt]) : PieceChars[pt];
+char piece_type_to_char(PieceType pt, bool upcase) {
+
+  return PieceChars[pt + int(upcase) * 7];
 }
 
 PieceType piece_type_from_char(char c) {
-  const char* ch = strchr(PieceChars, tolower(c));
-  return ch? PieceType(ch - PieceChars) : NO_PIECE_TYPE;
+
+  size_t idx = PieceChars.find(c);
+
+  return idx != string::npos ? PieceType(idx % 7) : NO_PIECE_TYPE;
 }