ochess/src/Openings.hpp

21 lines
710 B
C++
Raw Normal View History

2023-01-16 14:55:48 +01:00
#pragma once
#include "binres/openings.hpp"
#include "pgnp.hpp"
/**
* @brief Guess the opening using the Lichess Opening Database
* See: https://github.com/lichess-org/chess-openings
*/
class Openings {
typedef std::vector<std::string> MoveList;
typedef std::vector<std::tuple<std::string,std::string,std::string>> Volume;
Volume A,B,C,D,E;
void SearchOpening(const pgnp::HalfMove *moves,std::string &name, std::string &eco);
void LoadVolume(const std::string &tsv, Volume *vol);
public:
void GuessOpening(const std::string &SANMoves, std::string &name, std::string &eco);
void GuessOpening(const pgnp::HalfMove *moves, std::string &name, std::string &eco);
Openings();
};