12345678910111213141516171819202122232425262728293031 |
- #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);
- };
|