[Piece] Implement Piece::fromSymbol
This commit is contained in:
29
Piece.cpp
29
Piece.cpp
@@ -6,10 +6,37 @@ Piece::Piece(PieceColor color, PieceType type) : _color(color), _type(type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Piece::Optional Piece::fromSymbol(char symbol) {
|
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 std::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Piece(color, type);
|
||||||
|
}
|
||||||
|
|
||||||
PieceColor Piece::color() const {
|
PieceColor Piece::color() const {
|
||||||
return _color;
|
return _color;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user