BenBot 1.7.5
A chess engine
Loading...
Searching...
No Matches
MoveFormats.hpp
Go to the documentation of this file.
1/*
2 * ======================================================================================
3 *
4 * ░▒▓███████▓▒░░▒▓████████▓▒░▒▓███████▓▒░ ░▒▓███████▓▒░ ░▒▓██████▓▒░▒▓████████▓▒░
5 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
6 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
7 * ░▒▓███████▓▒░░▒▓██████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
8 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
9 * ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░
10 * ░▒▓███████▓▒░░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░
11 *
12 * ======================================================================================
13 */
14
20
21#pragma once
22
23#include <cstdint> // IWYU pragma: keep - for std::uint_least8_t
29#include <string>
30
31namespace chess::notation {
32
33using game::Position;
34using moves::Move;
35
40enum class MoveFormat : std::uint_least8_t {
44};
45
50[[nodiscard]] inline auto format_move(
51 const MoveFormat format,
52 const Position& position,
53 const Move move) -> std::string
54{
55 switch (format) {
57 return to_alg(position, move);
58
60 return to_iccf(move);
61
62 default: [[fallthrough]];
63 case MoveFormat::UCI:
64 return to_uci(move);
65 }
66}
67
68} // namespace chess::notation
auto format_move(const MoveFormat format, const Position &position, const Move move) -> std::string
auto to_iccf(Move move) -> std::string
auto to_uci(Move move) -> std::string
auto to_alg(const Position &position, Move move) -> std::string
@ ICCF
ICCF numeric notation.
@ Algebraic
Algebraic notation.