BenBot 1.7.5
A chess engine
Loading...
Searching...
No Matches
Options.hpp
Go to the documentation of this file.
1/*
2 * ======================================================================================
3 *
4 * ░▒▓███████▓▒░░▒▓████████▓▒░▒▓███████▓▒░ ░▒▓███████▓▒░ ░▒▓██████▓▒░▒▓████████▓▒░
5 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
6 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
7 * ░▒▓███████▓▒░░▒▓██████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
8 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
9 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
10 * ░▒▓███████▓▒░░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░
11 *
12 * ======================================================================================
13 */
14
20
25
26#pragma once
27
28#include <chrono>
29#include <cstddef> // IWYU pragma: keep - for size_t
31#include <limits>
32#include <optional>
33
34namespace chess::uci {
35struct GoCommandOptions;
36} // namespace chess::uci
37
43namespace ben_bot::search {
44
45using std::size_t;
46
52struct Options final {
54 size_t depth { std::numeric_limits<size_t>::max() };
55
57 std::optional<std::chrono::milliseconds> searchTime;
58
60 std::chrono::milliseconds moveOverhead { 0uz };
61
65 size_t maxNodes { std::numeric_limits<size_t>::max() };
66
71
75 bool infinite { false };
76
78 std::optional<size_t> mateIn;
79
81 [[nodiscard]] static auto from_libchess(
82 const chess::uci::GoCommandOptions& goOptions,
83 bool isWhiteToMove) -> Options;
84};
85
86} // namespace ben_bot::search
beman::inplace_vector::inplace_vector< Move, MAX_MOVES > MoveList
Definition MoveGen.hpp:63
std::chrono::milliseconds moveOverhead
Definition Options.hpp:60
static auto from_libchess(const chess::uci::GoCommandOptions &goOptions, bool isWhiteToMove) -> Options
std::optional< std::chrono::milliseconds > searchTime
Definition Options.hpp:57
chess::moves::MoveList movesToSearch
Definition Options.hpp:70
std::optional< size_t > mateIn
Definition Options.hpp:78