#pragma once

#include <vector>
#include <optional>
#include "SDL_rect.h"
#include "SDL_events.h"
#include "SDL_render.h"
#include "SDL_ttf.h"
#include "GuessCorrector.hpp"
#include "State.hpp"

const SDL_Point SCREEN_SIZE{800, 800};

class Game {
private:
    std::vector<const char *> all_words;
    std::unique_ptr<GuessCorrector> guess_corrector;
    const char *word;
    _TTF_Font *font;
    int m_wrong_guesses;
    State m_game_state;

public:
    static void Run();

    Game();

    void handle_key(SDL_Keycode event);

    void draw(SDL_Renderer *renderer);

private:
    void draw_guesses(SDL_Renderer *renderer);

};

