Implement Search
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user