| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | #include "Rook.h"#include "Position.h"#include <utility>#include <stdexcept>#include <iostream>Rook::Rook(Position pos, char c) {    if (c != 'B' and c != 'W')        throw std::invalid_argument("Impossible color of figure!");    position = pos;    color = c;}vector<Position> Rook::get_moves(){    vector<Position> moves;    int moveNum = 0;    for (int i = 1; i < 9; i++) {        Position p;        Position p2;        try {            if ('0'+i != position.posNum) p2 = Position(position.posSym, (char)('0'+i));            if ('0'+i+16 != position.posSym) p = Position((char)('0'+i+16), position.posNum);        }        catch (const std::invalid_argument) {            continue;        }        if ('0'+i+16 != position.posSym) {            moves.push_back(p);        }        if ('0'+i != position.posNum) {            moves.push_back(p2);        }    }    return moves;}const char* Rook::print(){    const char* me;    if (color == 'B')        me = "♜";    else        me = "♖";    return me;}
 |