#pragma once #include "../move.hpp" #include #include enum Piece : int8_t { None = 0, King = 1, Pawn = 2, Knigt = 3, Bishop = 4, Rook = 5, Queen = 6, }; enum Colour : int8_t { White = 8, Black = 16, }; class Board; struct Coords; std::vector legal_moves(const Piece, const Board&, const Coords); std::vector pawn_moves(const Board&, const Coords); std::vector rook_moves(const Board&, const Coords); std::vector knight_moves(const Board&, const Coords); std::vector bishop_moves(const Board&, const Coords); std::vector queen_moves(const Board&, const Coords); std::vector king_moves(const Board&, const Coords);