Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
move_translator.hpp
Go to the documentation of this file.
1#pragma once
2
4#include <iostream>
6#include <regex>
7#include <string>
8#include <vector>
9
10namespace movetranslation {
11
12class InvalidAlgebraicSpaceException : public ::std::invalid_argument {
13public:
14 explicit InvalidAlgebraicSpaceException(const std::string &message)
15 : std::invalid_argument(message) {}
16};
17
18class InvalidVectorSizeException : public std::runtime_error {
19public:
20 explicit InvalidVectorSizeException(const std::string &message)
21 : std::runtime_error(message) {}
22};
23
25 std::string value_;
26
27public:
28 AlgebraicBoardSpace(const std::string &value);
29 AlgebraicBoardSpace(const gameboard::BoardSpace &game_board_space);
30 const std::string value();
32 bool operator==(const AlgebraicBoardSpace &other) const;
33};
34
38
39public:
41 static const AlgebraicMove Create(
42 const std::vector<AlgebraicBoardSpace> &algebraic_board_spaces
43 );
44 static const AlgebraicMove Create(const std::vector<std::string> &tokens);
45 static const AlgebraicMove Create(const gameboard::Move &game_board_move);
46
50};
51
52const std::string GetInput(std::istream &input_stream);
53const std::string Trim(const std::string &str);
54const std::vector<std::string> Tokenize(const std::string &input);
55bool IsValidAlgebraicBoardSpace(const std::string &algebraic_space);
56bool IsValidAlgebraicMove(const std::vector<std::string> &tokens);
57
58} // namespace movetranslation
Constants, typedefs, and simple structs used by gameboard::GameBoard.
bool operator==(const AlgebraicBoardSpace &other) const
gameboard::BoardSpace ToGameBoardSpace()
static const AlgebraicMove Create(const std::vector< AlgebraicBoardSpace > &algebraic_board_spaces)
const AlgebraicBoardSpace end()
const AlgebraicBoardSpace start()
const gameboard::Move ToGameBoardMove()
InvalidAlgebraicSpaceException(const std::string &message)
InvalidVectorSizeException(const std::string &message)
Definitions and implementations of gameboard::Move and other move-related structs.
bool IsValidAlgebraicBoardSpace(const std::string &algebraic_space)
bool IsValidAlgebraicMove(const std::vector< std::string > &tokens)
const std::string Trim(const std::string &str)
const std::string GetInput(std::istream &input_stream)
const std::vector< std::string > Tokenize(const std::string &input)
A pair of coordinate (rank, and file) with properties determined by comparison with values of gameboa...
A gameboard::BoardSpace pair (start and end).