From 19ae4e74aedbbfde9aaed9241f616decc3ec9059 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 19 Mar 2020 15:22:00 +0100 Subject: Interface for ai (tested with random AI) --- include/ai.hpp | 17 +++++++++++++++++ include/graphics.hpp | 7 ++++++- include/rand_ai.hpp | 17 +++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 include/ai.hpp create mode 100644 include/rand_ai.hpp (limited to 'include') diff --git a/include/ai.hpp b/include/ai.hpp new file mode 100644 index 0000000..bdb6764 --- /dev/null +++ b/include/ai.hpp @@ -0,0 +1,17 @@ +#ifndef AI_HPP +# define AI_HPP + +#include "2048.hpp" +#include "game.hpp" + +class AI +{ + public: + // AI(Game *g); + virtual Direction move() = 0; + + private: + Game *game; +}; + +#endif diff --git a/include/graphics.hpp b/include/graphics.hpp index ebb596b..6951fc0 100644 --- a/include/graphics.hpp +++ b/include/graphics.hpp @@ -11,11 +11,12 @@ #include #include "game.hpp" #include "2048.hpp" +#include "ai.hpp" class Graphics { public: - Graphics(Game *g, std::string t, int w, int h); + Graphics(Game *g, std::string t, int w, int h, AI *ai = NULL); ~Graphics(); void update(); @@ -34,6 +35,10 @@ class Graphics SDL_Texture *scoreText; std::vector< std::pair > numberTexBuf; std::map< int, SDL_Color > palette; + AI *ai; + Uint32 aiTimeStep; + Uint32 aiNextTime; + void drawGame(); void drawCell(int x, int y); diff --git a/include/rand_ai.hpp b/include/rand_ai.hpp new file mode 100644 index 0000000..9739dae --- /dev/null +++ b/include/rand_ai.hpp @@ -0,0 +1,17 @@ +#ifndef RAND_AI_HPP +# define RAND_AI_HPP + +#include "ai.hpp" +#include "game.hpp" + +class RandAI : public AI +{ + public: + RandAI(Game *g); + Direction move(); + + private: + Game *game; +}; + +#endif -- cgit