stickfosh/cpp/src/pieces/piece.hpp

33 lines
565 B
C++
Raw Normal View History

2025-02-02 17:13:55 +01:00
#pragma once
#include "../move.hpp"
2025-02-02 16:49:10 +01:00
#include <cstdint>
2025-02-02 17:13:55 +01:00
#include <vector>
2025-02-02 16:49:10 +01:00
enum Piece : int8_t {
2025-02-02 15:15:14 +01:00
None = 0,
King = 1,
Pawn = 2,
Knigt = 3,
Bishop = 4,
Rook = 5,
Queen = 6,
};
2025-02-02 16:49:10 +01:00
enum Colour : int8_t {
2025-02-02 15:15:14 +01:00
White = 8,
Black = 16,
};
2025-02-02 17:13:55 +01:00
class Board;
2025-02-02 17:16:37 +01:00
2025-02-02 17:13:55 +01:00
std::vector<Move> legal_moves(Piece p, Board b);
2025-02-02 17:16:37 +01:00
std::vector<Move> pawn_moves(Board b);
std::vector<Move> rook_moves(Board b);
std::vector<Move> knight_moves(Board b);
std::vector<Move> bishop_moves(Board b);
std::vector<Move> queen_moves(Board b);
std::vector<Move> king_moves(Board b);