#include "Rook.h" #include "Position.h" #include <utility> #include <stdexcept> #include <iostream> Rook::Rook(Position pos) { position = pos; } std::pair<int, Position*> Rook::get_moves() { Position* moves = new Position[14]; 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) { p = Position(); p2 = Position(); } if ('0'+i+16 != position.posSym) { moves[moveNum] = p; moveNum++; } if ('0'+i != position.posNum) { moves[moveNum] = p2; moveNum++; } } return std::pair<int, Position*>(14, moves); };