Add assignment

This commit is contained in:
Job Noorman
2022-10-27 12:29:19 +02:00
commit 9f05ab03c1
49 changed files with 4339 additions and 0 deletions

38
Board.hpp Normal file
View 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