diff --git a/src/Game.cpp b/src/Game.cpp index 09c1bda..c4c4f01 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -71,7 +71,7 @@ Game::Game() { std::shuffle(all_words.begin(), all_words.end(), rng); word = all_words.back(); all_words.pop_back(); - guess_corrector = GuessCorrector(word); + guess_corrector = std::make_unique(word); } void Game::handle_key(SDL_Keycode event) { diff --git a/src/Game.hpp b/src/Game.hpp index 6036eb1..edfa6cf 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -11,7 +11,7 @@ const SDL_Point SCREEN_SIZE{800, 800}; class Game { private: std::vector all_words; - GuessCorrector guess_corrector; + std::unique_ptr guess_corrector; const char *word; public: diff --git a/src/GuessCorrector.cpp b/src/GuessCorrector.cpp index 2cb4c01..d2a816e 100644 --- a/src/GuessCorrector.cpp +++ b/src/GuessCorrector.cpp @@ -4,8 +4,8 @@ GuessCorrector::GuessCorrector(const char *word) : m_word(word), m_word_length(strlen(word)), - m_parts_guessed(std::make_unique[]>(m_word_length)) { - for (size_t i = 0; i < m_word_length; i++) { + m_parts_guessed(std::make_shared[]>(m_word_length)) { + for (std::ptrdiff_t i = 0; i < m_word_length; i++) { m_parts_guessed[i] = std::nullopt; } } @@ -37,7 +37,7 @@ bool GuessCorrector::is_filled_out() const { } std::weak_ptr[]> GuessCorrector::guessed() const { - m_parts_guessed; + return m_parts_guessed; } diff --git a/src/GuessCorrector.hpp b/src/GuessCorrector.hpp index 8a9d3b4..4842200 100644 --- a/src/GuessCorrector.hpp +++ b/src/GuessCorrector.hpp @@ -6,13 +6,11 @@ class GuessCorrector { const char *m_word; size_t m_word_length; - std::unique_ptr[]> m_parts_guessed; + std::shared_ptr[]> m_parts_guessed; public: GuessCorrector(const char *word); - GuessCorrector() = default; - [[nodiscard]] bool has_char(char to_check) const; void add(char to_add);