From d74222c2f421737c28ae12929687629fbd1a593b Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Sun, 2 Feb 2025 20:19:07 +0100 Subject: [PATCH] implemented rook legal moves --- cpp/src/pieces/rook.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 cpp/src/pieces/rook.cpp 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; +}