void on_threads(const Option& o) { Threads.set(o); }
void on_tb_path(const Option& o) { Tablebases::init(o); }
void on_variant_change(const Option &o) {
- sync_cout << "info string variant " << (std::string)o << " startpos " << variants.find(o)->second->startFen << sync_endl;
+ const Variant * v = variants.find(o)->second;
+ sync_cout << "info string variant " << (std::string)o
+ << " files " << v->maxFile + 1
+ << " ranks " << v->maxRank + 1
+ << " pocket " << (v->pieceDrops ? v->pieceTypes.size() : 0)
+ << " template " << v->variantTemplate
+ << " startpos " << v->startFen
+ << sync_endl;
}
}
Variant* minishogi_variant() {
Variant* v = fairy_variant_base();
+ v->variantTemplate = "shogi";
v->maxRank = RANK_5;
v->maxFile = FILE_E;
v->reset_pieces();
/// Variant struct stores information needed to determine the rules of a variant.
struct Variant {
+ std::string variantTemplate = "fairy";
Rank maxRank = RANK_8;
File maxFile = FILE_H;
std::set<PieceType> pieceTypes = { PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING };