#pragma once #include #include #include #include using std::string; class GameEngine { std::map damage_types{ {"error", 4}, {"warning", 1}, {"note", 0}, }; public: int starting_hp = 0; int hit_points = 0; int hits_taken = 0; int rounds = 0; int streak = 0; GameEngine(int hp); // FOUND BUG: I was accidentally copying this and shouldn't have been GameEngine(GameEngine &g) = delete; int determine_damage(string &type); void start_round(); void end_round(); bool hit(string &type); bool is_dead(); void heal(); void reset(); }; class Brainfucker { public: size_t dp = 0; size_t ip = 0; std::stringstream out; std::array data = {}; string code = {}; Brainfucker(); void run(int count); void set_code(string &code); void reset(); void jump_backward(); void jump_forward(); string to_string(); };