#include "Pawn.h" #include "Position.h" #include #include #include Pawn::Pawn(Position pos, char c) { if (c != 'B' and c != 'W') throw std::invalid_argument("Impossible color of figure!"); position = pos; color = c; } Figure* Pawn::copy() { static Pawn p(position, color); Figure* f = &p; return f; } vector Pawn::get_moves() { vector moves; Position p; try { if (color == 'W') p = Position(position.posSym, (char)(position.posNum+1)); if (color == 'B') p = Position(position.posSym, (char)(position.posNum-1)); } catch (const std::invalid_argument) {} moves.push_back(p); return moves; } const char* Pawn::print() { const char* me; if (color == 'B') me = "♟"; else me = "♙"; return me; }