Add assignment
This commit is contained in:
38
Board.hpp
Normal file
38
Board.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef CHESS_ENGINE_BOARD_HPP
|
||||
#define CHESS_ENGINE_BOARD_HPP
|
||||
|
||||
#include "Piece.hpp"
|
||||
#include "Square.hpp"
|
||||
#include "Move.hpp"
|
||||
#include "CastlingRights.hpp"
|
||||
|
||||
#include <optional>
|
||||
#include <iosfwd>
|
||||
#include <vector>
|
||||
|
||||
class Board {
|
||||
public:
|
||||
|
||||
using Optional = std::optional<Board>;
|
||||
using MoveVec = std::vector<Move>;
|
||||
|
||||
Board();
|
||||
|
||||
void setPiece(const Square& square, const Piece::Optional& piece);
|
||||
Piece::Optional piece(const Square& square) const;
|
||||
void setTurn(PieceColor turn);
|
||||
PieceColor turn() const;
|
||||
void setCastlingRights(CastlingRights cr);
|
||||
CastlingRights castlingRights() const;
|
||||
void setEnPassantSquare(const Square::Optional& square);
|
||||
Square::Optional enPassantSquare() const;
|
||||
|
||||
void makeMove(const Move& move);
|
||||
|
||||
void pseudoLegalMoves(MoveVec& moves) const;
|
||||
void pseudoLegalMovesFrom(const Square& from, MoveVec& moves) const;
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const Board& board);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user