123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #include "Pawn.h"
- #include "Position.h"
- #include <utility>
- #include <stdexcept>
- #include <iostream>
- 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<Position> Pawn::get_moves()
- {
- vector<Position> 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;
- }
|