Wizard
Software Engineering Project - Wizard
Loading...
Searching...
No Matches
card.h
1#ifndef WIZARD_CARD_H
2#define WIZARD_CARD_H
3
4#include "../../serialization/unique_serializable.h"
5#include "../../serialization/serializable_value.h"
6#include "../../../../rapidjson/include/rapidjson/document.h"
7
15class card : public unique_serializable {
16private:
17
18 serializable_value<int>* _value{};
19 serializable_value<int>* _color{};
20
25 explicit card(const std::string& id);
26
33 card(const std::string& id, serializable_value<int>* value, serializable_value<int>* color);
34
35public:
36
37// constructor and destructor
43 card(int value, int color);
44
48 ~card() override;
49
50// accessors
55 [[nodiscard]] int get_value() const noexcept;
56
61 [[nodiscard]] int get_color() const noexcept;
62
63// serialization interface
69 void write_into_json(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) const override;
70
76 static card* from_json(const rapidjson::Value& json);
77
78};
79
80#endif //WIZARD_CARD_H
Represents a card in the game.
Definition card.h:15
int get_value() const noexcept
Gets the card's value.
Definition card.cpp:26
static card * from_json(const rapidjson::Value &json)
Deserializes a card object from a json object.
Definition card.cpp:48
void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override
Serializes a card object into a json object.
Definition card.cpp:36
int get_color() const noexcept
Gets the card's color.
Definition card.cpp:30
~card() override
Destructs a card object.
Definition card.cpp:19
Definition serializable_value.h:27
Definition unique_serializable.h:12