diff --git a/Uppgift-3-Spel/ghost.h b/Uppgift-3-Spel/ghost.h
new file mode 100644
index 0000000000000000000000000000000000000000..34c6f6c192120bbefce67f5554ce10218e36282a
--- /dev/null
+++ b/Uppgift-3-Spel/ghost.h
@@ -0,0 +1,74 @@
+
+#include "given.h"
+//#include "given.h"
+#include "string"
+using namespace std;
+class Ghost
+{
+public:
+Ghost(std::string const &color, Point const &start_pos);
+virtual void set_pos( Point &new_pos);
+virtual Point get_scatter(const Point &pos_pacman) = 0;
+virtual Point get_chase(const Point &pos_pacman, const Point &dir_pacman) = 0;
+virtual Point get_pos();
+virtual std::string get_color()const = 0;
+virtual ~Ghost() = default;
+
+
+
+public: 
+std::string color_index;
+Point pos; 
+
+};
+
+
+class Clyde: public Ghost
+
+{
+    public:
+Clyde(std::string const &color, Point const &start_pos);
+void set_pos(Point &new_pos);
+Point get_scatter(const Point &pos_pacman);
+Point get_chase(const Point &pos_pacman, const Point &dir_pacman);
+Point get_pos();
+std::string get_color()const;
+
+
+
+};
+
+
+
+class Pinky: public Ghost
+
+{
+    public:
+Pinky(std::string const &color, Point const &start_pos);
+void set_pos(Point &new_pos);
+Point get_scatter(const Point &pos_pacman);
+Point get_chase(const Point &pos_pacman, const Point &dir_pacman);
+Point get_pos();
+std::string get_color()const;
+
+
+
+};
+
+
+
+class Blinky : public Ghost
+{
+    public:
+bool angry();
+void anger_activated(bool state);
+Blinky(std::string const &color, Point const &start_pos);
+void set_pos(Point &new_pos);
+Point get_scatter(const Point &pos_pacman);
+Point get_chase(const Point &pos_pacman, const Point &dir_pacman);
+Point get_pos();
+std::string get_color()const;
+
+
+
+};