#include "Horse.h" #include "Position.h" #include <utility> #include <stdexcept> #include <cmath> Horse::Horse(Position pos) { position = pos; } std::pair<int, Position*> Horse::get_moves() { Position* moves = new Position[8]; int moveNum = 0; for(int i = -2; i < 3; i++) { for(int j = -2; j < 3; j++) { if(std::abs(i) == std::abs(j) or i == 0 or j == 0) continue; Position p; try { p = Position((char)(position.posSym+i), (char)(position.posNum+j)); } catch (const std::invalid_argument) { p = Position(); } moves[moveNum] = p; moveNum++; } } return std::pair<int, Position*>(8, moves); };