summaryrefslogtreecommitdiff
path: root/Homework/cs3460/gameoflife/RendererConsole.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Homework/cs3460/gameoflife/RendererConsole.hpp')
-rw-r--r--Homework/cs3460/gameoflife/RendererConsole.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/Homework/cs3460/gameoflife/RendererConsole.hpp b/Homework/cs3460/gameoflife/RendererConsole.hpp
new file mode 100644
index 0000000..3bbd3db
--- /dev/null
+++ b/Homework/cs3460/gameoflife/RendererConsole.hpp
@@ -0,0 +1,29 @@
+#include "LifeSimulator.hpp"
+#include "Renderer.hpp"
+#include "rlutil.h"
+
+#include <array>
+#include <map>
+
+#ifndef RENDERERCONSOLE_HPP
+ #define RENDERERCONSOLE_HPP
+
+class RendererConsole : public Renderer
+{
+ private:
+ std::map<std::pair<std::uint8_t, std::uint8_t>, std::uint8_t> m_previouslyAliveLength;
+
+ public:
+ static constexpr std::uint8_t MAX_ALIVE = 4;
+ static constexpr std::array<std::pair<std::uint8_t, std::uint8_t>, 4> PRINT_PER_LIFESPAN{
+ {
+ { '8', rlutil::GREEN },
+ { '+', rlutil::BLUE },
+ { '-', rlutil::YELLOW },
+ { '\'', rlutil::RED },
+ }
+ };
+ virtual void render(const LifeSimulator& simulation);
+};
+
+#endif // RENDERERCONSOLE_HPP