Implement Search

This commit is contained in:
2022-12-23 18:34:34 +01:00
parent bcf4d66c49
commit 87adca7e66
15 changed files with 337 additions and 66 deletions

View File

@@ -1,29 +1,53 @@
#include "PrincipalVariation.hpp"
#include <ostream>
#include <vector>
PrincipalVariation::PrincipalVariation(const std::vector<Move> &v, bool isMate): mMoves(v), mIsMate(isMate) {
}
PrincipalVariation::PrincipalVariation(const std::vector<Move> &v, Board &board): mMoves(v) {
for (const auto &kMove : v) {
board.makeMove(kMove);
}
mIsMate = board.isCheckMate();
if (mIsMate || v.empty()) {
mScore = static_cast<int>(v.size());
} else {
mScore = board.evaluate();
}
}
bool PrincipalVariation::isMate() const {
return false;
return mIsMate;
}
int PrincipalVariation::score() const {
return 0;
return mScore;
}
std::size_t PrincipalVariation::length() const {
return 0;
return mMoves.size();
}
PrincipalVariation::MoveIter PrincipalVariation::begin() const {
return nullptr;
return mMoves.begin();
}
PrincipalVariation::MoveIter PrincipalVariation::end() const {
return nullptr;
return mMoves.end();
}
std::ostream& operator<<(std::ostream& os, const PrincipalVariation& pv) {
(void)pv;
std::ostream &operator<<(std::ostream &os, const PrincipalVariation &pv) {
os << "isMate=" << pv.isMate();
os << " score=" << pv.score();
os << " length=" << pv.length() << std::endl;
os << "Moves:" << std::endl;
for (const auto &item : pv) {
os << item << std::endl;
}
return os;
}