libscid 0.1.0
Chess applications made easy.
Loading...
Searching...
No Matches
notation.h
1#pragma once
2
3#include "scid/core/move.h"
5#include <cstddef>
6#include <optional>
7#include <string>
8
9namespace scid::core {
10class Position;
11} // namespace scid::core
12
13namespace scid::core {
14class Game;
15class MovetextLocation;
16
17namespace notation {
18
19std::string currentPositionUci(const Game& game, MovetextLocation location);
20std::string previousMoveUci(const Game& game, MovetextLocation location);
21std::string nextMoveUci(const Game& game, MovetextLocation location);
22std::string previousSan(const Game& game, MovetextLocation location);
23std::string nextSan(const Game& game, MovetextLocation location);
24std::string partialMoveList(const Game& game, std::size_t plyCount);
25
26} // namespace notation
27} // namespace scid::core
28
29namespace scid::core {
30
31inline constexpr std::size_t SAN_STRING_SIZE = 10;
32using sanStringT = char[SAN_STRING_SIZE];
33
34using sanFlagT = byte;
35inline constexpr sanFlagT SAN_NO_CHECKTEST = 0;
36inline constexpr sanFlagT SAN_CHECKTEST = 1;
37inline constexpr sanFlagT SAN_MATETEST = 2;
38
39inline constexpr std::size_t UCI_MOVE_STRING_SIZE = 6;
40
41} // namespace scid::core
Portable move intent.
Constants and definitions of the chess board.