diff --git a/ghost.h b/ghost.h
new file mode 100644
index 0000000000000000000000000000000000000000..725676953f9c50978f2058d8efa42d5bd495b4b5
--- /dev/null
+++ b/ghost.h
@@ -0,0 +1,76 @@
+
+#infdef ghost.h 
+#define ghost.h
+
+#include "given.h"
+#include "string"
+using namespace std;
+class Ghost
+{
+public:
+Clyde(std::string const &color, Point const &start_pos);
+virtual void set_pos(const 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;
+
+
+
+private:
+std::string color_index
+Point position; 
+
+};
+
+
+
+class Clyde
+{
+    public:
+Clyde(std::string const &color, Point const &start_pos);
+void set_pos(const 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:
+Pinky(std::string const &color, Point const &start_pos);
+void set_pos(const 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:
+Bool angry();
+anger_activated(bool state);
+Blinky(std::string const &color, Point const &start_pos);
+void set_pos(const 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;
+
+
+
+};
+#endif
\ No newline at end of file