[Piece] Implement Piece::fromSymbol
This commit is contained in:
29
Piece.cpp
29
Piece.cpp
@@ -6,8 +6,35 @@ Piece::Piece(PieceColor color, PieceType type) : _color(color), _type(type) {
|
||||
}
|
||||
|
||||
Piece::Optional Piece::fromSymbol(char symbol) {
|
||||
(void)symbol;
|
||||
PieceType type;
|
||||
PieceColor color = std::isupper(symbol) ? PieceColor::White : PieceColor::Black;
|
||||
|
||||
auto tryType = static_cast<PieceType>(toupper(symbol));
|
||||
|
||||
switch (tryType) {
|
||||
case PieceType::Pawn:
|
||||
type = PieceType::Pawn;
|
||||
break;
|
||||
case PieceType::Knight:
|
||||
type = PieceType::Knight;
|
||||
break;
|
||||
case PieceType::Bishop:
|
||||
type = PieceType::Bishop;
|
||||
break;
|
||||
case PieceType::Rook:
|
||||
type = PieceType::Rook;
|
||||
break;
|
||||
case PieceType::Queen:
|
||||
type = PieceType::Queen;
|
||||
break;
|
||||
case PieceType::King:
|
||||
type = PieceType::King;
|
||||
break;
|
||||
default:
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
return Piece(color, type);
|
||||
}
|
||||
|
||||
PieceColor Piece::color() const {
|
||||
|
Reference in New Issue
Block a user