1#ifndef EILE_MIT_WEILE_GAMESTATE_HPP
2#define EILE_MIT_WEILE_GAMESTATE_HPP
6#include <rapidjson/document.h>
8#include "board/Board.hpp"
9#include "common/serialization/serializable.hpp"
10#include "common/serialization/serializable_value.hpp"
11#include "common/serialization/unique_serializable.hpp"
67 void WriteIntoJson(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator)
const override;
Data structure for the game board of Eile Mit Weile including operations on it.
Definition Board.hpp:37
Holds the state of one game.
Definition GameState.hpp:22
bool IsPlayerInGame(Player *player)
Definition GameState.cpp:60
Player * GetCurrentPlayer()
Definition GameState.cpp:72
int GetPlayerIndex(Player *player)
Definition GameState.cpp:79
Board * _board
Definition GameState.hpp:27
bool IsFinished()
Definition GameState.cpp:56
bool IsAllowedToPlayNow(Player *player)
Definition GameState.cpp:64
static const int _max_nof_players
Definition GameState.hpp:25
bool IsFull()
Definition GameState.cpp:48
static GameState * FromJson(const rapidjson::Value &json)
Definition GameState.cpp:92
SerializableValue< int > * _play_direction
Definition GameState.hpp:32
GameState()
Definition GameState.cpp:3
std::vector< Player * > _players
Definition GameState.hpp:28
unsigned int ThrowDice(Player *player, std::string string)
Definition GameState.cpp:147
std::vector< Player * > & GetPlayers()
Definition GameState.cpp:68
bool IsStarted()
Definition GameState.cpp:52
void WriteIntoJson(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override
Definition GameState.cpp:117
SerializableValue< bool > * _is_started
Definition GameState.hpp:29
Board * GetBoard()
Definition GameState.cpp:88
SerializableValue< int > * _current_player_idx
Definition GameState.hpp:31
SerializableValue< bool > * _is_finished
Definition GameState.hpp:30
~GameState()
Definition GameState.cpp:32
static const int _min_nof_players
Definition GameState.hpp:26
Holds all relevant information of a player.
Definition Player.hpp:27
A serializable value, used for writing values into json.
Definition serializable_value.hpp:28
Used to serialize game_state objects that need to be identifiable by a unique id.
Definition unique_serializable.hpp:14