Files
cpl_cpp-project/PrincipalVariation.hpp
2022-12-23 18:34:34 +01:00

36 lines
775 B
C++

#ifndef CHESS_ENGINE_PRINCIPALVARIATION_HPP
#define CHESS_ENGINE_PRINCIPALVARIATION_HPP
#include "Move.hpp"
#include "Piece.hpp"
#include "Board.hpp"
#include <iosfwd>
#include <cstddef>
#include <vector>
class PrincipalVariation {
public:
using MoveIter = std::vector<Move>::const_iterator;
PrincipalVariation() = default;
PrincipalVariation(const std::vector<Move> &v, bool isMate);
PrincipalVariation(const std::vector<Move> &v, Board &board);
bool isMate() const;
int score() const;
std::size_t length() const;
MoveIter begin() const;
MoveIter end() const;
private:
std::vector<Move> mMoves;
bool mIsMate = false;
int mScore = 0;
};
std::ostream &operator<<(std::ostream &os, const PrincipalVariation &pv);
#endif