Convert piece.cpp to C++
authorMarco Costalba <mcostalba@gmail.com>
Mon, 27 Apr 2009 09:12:34 +0000 (10:12 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 27 Apr 2009 09:12:34 +0000 (10:12 +0100)
No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/piece.cpp

index 40babba..84ed22d 100644 (file)
 //// 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");
 
 char piece_type_to_char(PieceType pt, bool upcase) {
-  return char(upcase? toupper(PieceChars[pt]) : PieceChars[pt]);
+
+  return PieceChars[pt + 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;
 }