My Project
game.hpp
Go to the documentation of this file.
1#ifndef _STATE_H
2#define _STATE_H
3
4#include "definitions.hpp"
5#include "wordle-de.pb.h"
6#include <array>
7#include <functional>
8#include <mutex>
9#include <string>
10#include <vector>
11
12class GameState {
13public:
15 typedef std::array<matchType, WORD_LENGTH> guessResultT;
16 struct guess {
17 std::string guess;
19 };
20
21private:
22 std::string word;
23 uint8_t tries;
24 std::vector<std::string> guesses;
25
26public:
27 GameState();
28 GameState(const std::string &word);
29 void setWord(const std::string &);
30 std::string getWord() { return word; }
31 uint8_t getTries() { return tries; }
32 std::vector<std::string> getGuesses() { return guesses; }
33 guessResultT guess(const std::string &);
34 std::string serialize(bool);
35 void operator=(wordle_de::GameState);
36};
37
38class Engine {
39public:
40 typedef std::function<void(const std::string &)> Callback;
41
42private:
43 std::string currentWord;
44 std::vector<std::string> pastWords;
45 std::string wordFile;
46 bool started = false;
47 std::mutex mut;
48 std::vector<Callback> callbacks;
49
50public:
51 static void createInstance();
52 static void createInstance(const std::string &);
53 static Engine *getInstance();
54 static void destroyInstance();
55
56 void start(unsigned int);
57 void setNewWord();
58 void setWord(const std::string &);
59 std::string getWord();
61
62private:
64 Engine(const std::string &f) : wordFile(f) {}
65 unsigned int getRandomLine(unsigned int);
67};
68#endif // _STATE_H
Definition: game.hpp:38
std::string getWord()
Definition: game.cpp:101
static void destroyInstance()
Definition: game.cpp:66
std::vector< std::string > pastWords
Definition: game.hpp:44
Engine(const std::string &f)
Definition: game.hpp:64
static Engine * instance
Definition: game.hpp:66
void start(unsigned int)
Definition: game.cpp:106
std::string wordFile
Definition: game.hpp:45
void registerNewWordCallback(Callback)
Definition: game.cpp:126
bool started
Definition: game.hpp:46
void setNewWord()
Definition: game.cpp:68
Engine()
Definition: game.hpp:63
unsigned int getRandomLine(unsigned int)
Definition: game.cpp:121
std::mutex mut
Definition: game.hpp:47
void setWord(const std::string &)
Definition: game.cpp:97
std::string currentWord
Definition: game.hpp:43
std::function< void(const std::string &)> Callback
Definition: game.hpp:40
static void createInstance()
Definition: game.cpp:52
static Engine * getInstance()
Definition: game.cpp:64
std::vector< Callback > callbacks
Definition: game.hpp:48
Definition: game.hpp:12
void operator=(wordle_de::GameState)
Definition: game.cpp:43
std::string getWord()
Definition: game.hpp:30
std::vector< std::string > getGuesses()
Definition: game.hpp:32
uint8_t getTries()
Definition: game.hpp:31
GameState()
Definition: game.cpp:12
std::string word
Definition: game.hpp:22
guessResultT guess(const std::string &)
Definition: game.cpp:19
std::array< matchType, WORD_LENGTH > guessResultT
Definition: game.hpp:15
matchType
Definition: game.hpp:14
@ MATCH
Definition: game.hpp:14
@ EXACT_MATCH
Definition: game.hpp:14
@ NO_MATCH
Definition: game.hpp:14
void setWord(const std::string &)
Definition: game.cpp:16
std::vector< std::string > guesses
Definition: game.hpp:24
uint8_t tries
Definition: game.hpp:23
std::string serialize(bool)
Definition: game.cpp:34
const char DEFAULT_FILENAME[]
Definition: definitions.hpp:12
Definition: game.hpp:16
guessResultT result
Definition: game.hpp:18
std::string guess
Definition: game.hpp:17