diff --git a/cpp/src/pieces/rook.cpp b/cpp/src/pieces/rook.cpp new file mode 100644 index 0000000..1d389d7 --- /dev/null +++ b/cpp/src/pieces/rook.cpp @@ -0,0 +1,23 @@ +#include "../board.hpp" +#include "../coords.hpp" +#include "../move.hpp" +#include "piece.hpp" + +#include + +std::vector rook_moves(const Board& b, const Coords xy) { + std::vector ret; + auto e = look_direction(b, xy, 1, 0); + ret.insert(ret.end(), e.begin(), e.end()); + + auto s = look_direction(b, xy, 0, -1); + ret.insert(ret.end(), s.begin(), s.end()); + + auto w = look_direction(b, xy, -1, 0); + ret.insert(ret.end(), w.begin(), w.end()); + + auto n = look_direction(b, xy, 0, 1); + ret.insert(ret.end(), n.begin(), n.end()); + + return ret; +}