diff --git a/Uppgift-3-Spel/a.out b/Uppgift-3-Spel/a.out
deleted file mode 100755
index a398520ed6a2db900ffaef0877675112a23b5ad4..0000000000000000000000000000000000000000
Binary files a/Uppgift-3-Spel/a.out and /dev/null differ
diff --git a/Uppgift-3-Spel/backup/a.out b/Uppgift-3-Spel/backup/a.out
deleted file mode 100755
index e14343b95af6139cc53d893800edd60418090f72..0000000000000000000000000000000000000000
Binary files a/Uppgift-3-Spel/backup/a.out and /dev/null differ
diff --git a/Uppgift-3-Spel/backup/ghost.cc b/Uppgift-3-Spel/backup/ghost.cc
deleted file mode 100644
index ffcc154676c7bfe2d44a30aa57e2c5446c35d992..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/backup/ghost.cc
+++ /dev/null
@@ -1,171 +0,0 @@
-#include "ghost.h"
-
-//ghost
-
-Ghost::Ghost(std::string const &color, Point const &start_pos, Pacman& pac)
-      : color_index(color), pos(start_pos), pacman{pac}
-{}
-
-void Ghost::set_pos( Point new_pos) 
-{
-  new_pos.x = pos.x;
-  new_pos.y = pos.y;
-}
-
-
-
-
-Point Ghost::get_pos() 
-{
-  return Point{pos.x, pos.y};
-}
-
-
-
-//clyde 
-Clyde::Clyde(std::string const &color, Point const &start_pos, Pacman& pac)
-      : Ghost("orange", start_pos, pac)
-{}
-
-
-Point Clyde::get_scatter() 
-{
-return Point{0,0};
-}
-
-
-Point Clyde::get_pos() 
-{
-  return Point{pos.x, pos.y};
-}
- 
-void Clyde::set_pos( Point new_pos) 
-{
-Ghost::set_pos(new_pos);
-}
-
-
-
-string Clyde::get_color() const
-{
-return "orange";
-}
-
-Point Clyde::get_chase() 
-{
-    Point pac_dir = pacman.get_direction();
-    Point pac_pos = pacman.get_position();
-    int proximity = abs(pos.x - pac_pos.x)  + abs(pos.y - pac_pos.y);
-
-    if (proximity >= 2)
-    {
-        return pac_pos;
-    }
-    else 
-    {
-      return Point{0,0};  
-    }
-
-
-}
-
-//pinky 
-
-Pinky::Pinky(std::string const &color, Point const &start_pos, Pacman& pac):
-Ghost("pink", start_pos, pac)
-{}
-
-
-Point Pinky::get_scatter()
-{
-return Point{0,21};
-}
-
-
-Point Pinky::get_pos() 
-{
-return Point{pos.x, pos.y};
-}
- 
-void Pinky::set_pos( Point new_pos) 
-{
-Ghost::set_pos(new_pos);
-}
-
-
-
-string Pinky::get_color() const
-{
-return "pink";
-}
-Point Pinky::get_chase() 
-{
-
-  Point pac_dir {pacman.get_direction()};
-  Point pac_pos {pacman.get_position()};
-
-  if(pac_dir.x == 0 && pac_dir.y == -1)
- {
-  pac_pos.y = (pac_pos.y - 2);
- } 
-  else if(pac_dir.x == 0 && pac_dir.y == 1)
-  {
-  pac_pos.y = (pac_pos.y + 2);
-
-}
-  else if(pac_dir.x == -1 && pac_dir.y == 0)
-  {
-    pac_pos.x = (pac_pos.x -2 );
-
-  }
-  else if(pac_dir.x == 1 && pac_dir.y == 0)
-  {
-    pac_pos.x = (pac_pos.x -2);
-
-
-  }
-  return pac_pos;
-}
-
-//blinky 
-Blinky::Blinky(std::string const &color, Point const &start_pos, Pacman& pac) 
-      : Ghost("red", start_pos, pac)
-      {}
-
-void Blinky::set_pos(Point new_pos)  {
-  set_pos(new_pos);
-}
-
-Point Blinky::get_scatter() {
-  if (angry == true)
-  {
-    return Point{pacman.get_position()}; // stämmer?
-  } else
-  {
-    return Point{6, 6};
-  }
-}
-
-Point Blinky::get_chase() {
-  return Point{pacman.get_position()};
-}
-
-Point Blinky::get_pos()  {
-  return pos;
-}
-
-std::string Blinky::get_color()const
-{
-  return "pink";
-}
-
-bool Blinky::get_angry(){
-  return angry;
-}
-
-void Blinky::set_angry(bool state) {
-  angry = state;
-}
-
-
-
diff --git a/Uppgift-3-Spel/backup/ghost.h b/Uppgift-3-Spel/backup/ghost.h
deleted file mode 100644
index 2dd23626afd7ba68398b0b85966c979deaf1d546..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/backup/ghost.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef GHOST_H
-#define GHOST_H
-
-#include "given.h"
-#include "string"
-using namespace std;
-
-class Ghost
-{
-public:
-    Ghost(std::string const &color, Point const &start_pos, Pacman& pac);
-    virtual void set_pos( Point new_pos);
-    virtual Point get_scatter() = 0;
-    virtual Point get_chase() = 0;
-    virtual Point get_pos();
-    virtual std::string get_color()const = 0;
-    virtual ~Ghost() = default;
-protected: 
-    std::string color_index;
-    Point pos; 
-    Pacman& pacman;
-};
-
-class Clyde: public Ghost
-{
-public:
-    Clyde(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos) override;
-    Point get_scatter() override ;
-    Point get_chase() override ;
-    Point get_pos() override;
-    std::string get_color()const;
-};
-
-class Pinky: public Ghost
-{
-public:
-    Pinky(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos)override;
-    Point get_scatter() override;
-    Point get_chase() override ;
-    Point get_pos()override;
-    std::string get_color()const;
-};
-
-class Blinky : public Ghost
-{
-public:
-    bool get_angry();
-    void set_angry(bool state);
-    Blinky(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos)override;
-    Point get_scatter() override;
-    Point get_chase() override; // Blinky::get_chase(const Point&)’ marked ‘override’, but does not override
-    Point get_pos()override;
-    std::string get_color()const;
-private:
-    bool angry = false ;
-};
-
-#endif
\ No newline at end of file
diff --git a/Uppgift-3-Spel/backup/given.cc b/Uppgift-3-Spel/backup/given.cc
deleted file mode 100644
index 154bfe8f81b4c120c571f60e7e97b3480c0d1f87..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/backup/given.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "given.h"
-
-int WIDTH = 19;
-int HEIGHT = 22;
-
-bool operator==(Point const& lhs, Point const& rhs)
-{
-    return lhs.x == rhs.x && lhs.y == rhs.y;
-}
-
-std::istream& operator>>(std::istream& is, Point& rhs)
-{
-    return is >> rhs.x >> rhs.y;
-}
-
-Pacman::Pacman()
-    : pos {}, dir {1,0}
-{}
-
-Point Pacman::get_position() const
-{
-    return pos;
-}
-
-void Pacman::set_position(Point const& p)
-{
-    if (p.x > WIDTH or p.x < 0 or p.y > HEIGHT or p.y < 0)
-    {
-        throw std::runtime_error("position outside valid range");
-    }
-    pos = p;
-}
-
-Point Pacman::get_direction() const
-{
-    return dir;
-}
-
-void Pacman::set_direction(Point const& p)
-{
-    if (p.x > 1 or p.x < -1 or p.y > 1 or p.y < -1 or abs(p.x + p.y) != 1)
-    {
-        throw std::runtime_error("direction outside valid range");
-    }
-    dir = p;
-}
diff --git a/Uppgift-3-Spel/backup/given.h b/Uppgift-3-Spel/backup/given.h
deleted file mode 100644
index 92b57b82966db209d7c3b0d63a7344dfe33a4fd1..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/backup/given.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  I denna fil finns ett utval av kod fr�n det dina kollegor skrivit till ert pacman-projekt. Det �r
-  precis det som du beh�ver f�r att skriva din del av koden.
-
-  Tips: Du f�r ut�ka denna fil med saker som du beh�ver f�r att ditt program ska kompilera. Det �r
-  �ven okej att ut�ka Point med fler operatorer om det skulle beh�vas.
- */
-
-
-#include <stdexcept>
-#include <iostream>
-
-
-/*
-  Globala variabler f�r storlek p� spelplanen.
-
-  Din kollega som skrev detta �r medveten om att globala variabler �r d�ligt och borde undvikas, men
-  har inte haft tid att �tg�rda det. I den slutgiltiga versionen av koden borde dessa s�klart l�sas
-  fr�n en fil med konfigurationsdata.
- */
-extern int WIDTH;
-extern int HEIGHT;
-
-
-/*
-  Ett aggregat som anv�nd f�r att representera punkter och riktninar p� spelplanen.
-  Aggregatet har ocks� hj�lpsamma operatorer som kan underl�tta din implementation.
-
- */
-struct Point
-{
-    int x;
-    int y;
-};
-bool operator==(Point const& lhs, Point const& rhs);
-std::istream& operator>>(std::istream& is, Point& rhs);
-
-
-/*
-  En klass f�r att representera spelarfiguren. Detta �r en nedskalad version j�mf�rt med det som
-  kollegan skrev till spelet. Notera att din kod inte beh�ver �ndras om man skulle g� fr�n denna
-  implementaion till den faktiska implementationen.
- */
-class Pacman
-{
-public:
-
-    Pacman();
-    
-    Point get_position() const;
-    void set_position(Point const& p);
-
-    Point get_direction() const;
-    void set_direction(Point const& p);
-
-private:
-    
-    Point pos {};
-    Point dir {};
-};
diff --git a/Uppgift-3-Spel/backup/main.cc b/Uppgift-3-Spel/backup/main.cc
deleted file mode 100644
index bbfa9277c5ef66a1ae0e1c4ac44046d63bc52015..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/backup/main.cc
+++ /dev/null
@@ -1,158 +0,0 @@
-#include "ghost.h"
-//#include "given.h"
-#include <string>
-#include <iostream>
-#include <iomanip>
-#include <sstream>
-#include <vector>
-#include <cctype>
-
-using namespace std;
-
-/*
-  Ledning och Tips:
-
-  - Modifiera stukturen till en header-fil och en implementationsfil
-  - Ut�ka 'run()' och 'draw_map()' med �vrig funktionalitet.
-  - L�gg alla sp�ken i en l�mplig beh�llare som en datamedlem.
-  - Bryt ut stora kodblock till egna funktioner.
-  - Anv�nd hj�lpfunktioner f�r att undvika duplicering av kod.
-  - T�nk p� att varje funktion inte borde vara l�ngre �n 25 rader.
- */
-
-class Ghost_Tester
-{
-
-public:
-
-    Pacman pacman;
-    vector<Ghost*> all_ghosts;
-    
-    Ghost_Tester():
-     pacman {} ,all_ghosts{}
-    { 
-
-    all_ghosts.push_back(new Clyde("orange", Point{5,5}, pacman));
-    all_ghosts.push_back(new Blinky("red", Point{6,6}, pacman));
-    all_ghosts.push_back(new Pinky("pink", Point{7,7}, pacman)) ;  
-    }
-
-    void run()
-    {
-        while(true)
-        {
-            draw_map();
-            cout << "> ";
-
-            string line {};
-            getline(cin, line);
-            istringstream iss {line};
-        
-            string command {};
-            iss >> command;
-
-            for (Ghost* e : all_ghosts) 
-            {
-                if (command == e -> get_color())
-                {
-                    Point new_pos {};
-                    iss >> new_pos.x >> new_pos.y;
-                    e -> set_pos(new_pos);
-                }
-                else if (command == "chase")
-                {
-                    e -> set_pos(e -> get_chase());
-                }
-                else if (command == "scatter")
-                {
-                    e -> set_pos(e -> get_scatter());
-                }
-                else if (command == "anger")
-                {
-                    // behöver vara blinky
-                    if(e -> get_color() == "red") {
-                        dynamic_cast<Blinky*>(e) -> set_angry(true);
-                    }
-                }
-            }
-
-            if (command == "pos")
-            {
-                Point new_pos {};
-                iss >> new_pos.x >> new_pos.y;
-                pacman.set_position(new_pos);
-            }
-            else if (command == "dir")
-            {
-            }
-            else if (command == "quit")
-            {
-                for (Ghost* e : all_ghosts)
-                {
-                    delete e;
-                }
-                
-                break;
-            }
-        }
-    }
-    
-
-
-
-
-    //fixa följande funltion 
-private:
-
-    /*
-      En hj�lpfunktion som avg�r vilka tv� tecken som ska ritas ut f�r en given position p�
-      spelplanen.
-     */
-    string to_draw(Point const& curr_pos)
-    {
-        string to_draw{"  "};
-
-        if (pacman.get_position() == curr_pos)
-        {
-            to_draw[1] = '@';
-        }
-
-        return to_draw;
-    }
-    
-    /*
-      En hj�lpfunktion f�r att rita ut spelplanen f�r testprogrammet.
-      
-      Itererar �ver varje rad och column i kartan. Index f�r raderna �r flippade f�r att placera
-      y = 0 l�ngst ned.
-      
-      Varje punkt i kartan ritas som tv� tecken eftersom ett tecken i terminalen �r ca dubbelt s�
-      h�gt som det �r brett.
-    */
-    void draw_map()
-    {
-        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+\n";
-
-        for (int y {HEIGHT - 1}; y >= 0; --y) 
-        {
-            cout << "|";
-            for (int x {}; x < WIDTH; ++x) 
-            {
-                cout << to_draw( Point{x,y} );
-            }
-            cout << "|\n";
-        }
-    
-        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+" << endl;
-    }
-
-
-
-};
-
-int main()
-{
-    Ghost_Tester gt {};
-    gt.run();
-    return 0;
-}
diff --git a/Uppgift-3-Spel/ghost.cc b/Uppgift-3-Spel/ghost.cc
deleted file mode 100644
index ffcc154676c7bfe2d44a30aa57e2c5446c35d992..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/ghost.cc
+++ /dev/null
@@ -1,171 +0,0 @@
-#include "ghost.h"
-
-//ghost
-
-Ghost::Ghost(std::string const &color, Point const &start_pos, Pacman& pac)
-      : color_index(color), pos(start_pos), pacman{pac}
-{}
-
-void Ghost::set_pos( Point new_pos) 
-{
-  new_pos.x = pos.x;
-  new_pos.y = pos.y;
-}
-
-
-
-
-Point Ghost::get_pos() 
-{
-  return Point{pos.x, pos.y};
-}
-
-
-
-//clyde 
-Clyde::Clyde(std::string const &color, Point const &start_pos, Pacman& pac)
-      : Ghost("orange", start_pos, pac)
-{}
-
-
-Point Clyde::get_scatter() 
-{
-return Point{0,0};
-}
-
-
-Point Clyde::get_pos() 
-{
-  return Point{pos.x, pos.y};
-}
- 
-void Clyde::set_pos( Point new_pos) 
-{
-Ghost::set_pos(new_pos);
-}
-
-
-
-string Clyde::get_color() const
-{
-return "orange";
-}
-
-Point Clyde::get_chase() 
-{
-    Point pac_dir = pacman.get_direction();
-    Point pac_pos = pacman.get_position();
-    int proximity = abs(pos.x - pac_pos.x)  + abs(pos.y - pac_pos.y);
-
-    if (proximity >= 2)
-    {
-        return pac_pos;
-    }
-    else 
-    {
-      return Point{0,0};  
-    }
-
-
-}
-
-//pinky 
-
-Pinky::Pinky(std::string const &color, Point const &start_pos, Pacman& pac):
-Ghost("pink", start_pos, pac)
-{}
-
-
-Point Pinky::get_scatter()
-{
-return Point{0,21};
-}
-
-
-Point Pinky::get_pos() 
-{
-return Point{pos.x, pos.y};
-}
- 
-void Pinky::set_pos( Point new_pos) 
-{
-Ghost::set_pos(new_pos);
-}
-
-
-
-string Pinky::get_color() const
-{
-return "pink";
-}
-Point Pinky::get_chase() 
-{
-
-  Point pac_dir {pacman.get_direction()};
-  Point pac_pos {pacman.get_position()};
-
-  if(pac_dir.x == 0 && pac_dir.y == -1)
- {
-  pac_pos.y = (pac_pos.y - 2);
- } 
-  else if(pac_dir.x == 0 && pac_dir.y == 1)
-  {
-  pac_pos.y = (pac_pos.y + 2);
-
-}
-  else if(pac_dir.x == -1 && pac_dir.y == 0)
-  {
-    pac_pos.x = (pac_pos.x -2 );
-
-  }
-  else if(pac_dir.x == 1 && pac_dir.y == 0)
-  {
-    pac_pos.x = (pac_pos.x -2);
-
-
-  }
-  return pac_pos;
-}
-
-//blinky 
-Blinky::Blinky(std::string const &color, Point const &start_pos, Pacman& pac) 
-      : Ghost("red", start_pos, pac)
-      {}
-
-void Blinky::set_pos(Point new_pos)  {
-  set_pos(new_pos);
-}
-
-Point Blinky::get_scatter() {
-  if (angry == true)
-  {
-    return Point{pacman.get_position()}; // stämmer?
-  } else
-  {
-    return Point{6, 6};
-  }
-}
-
-Point Blinky::get_chase() {
-  return Point{pacman.get_position()};
-}
-
-Point Blinky::get_pos()  {
-  return pos;
-}
-
-std::string Blinky::get_color()const
-{
-  return "pink";
-}
-
-bool Blinky::get_angry(){
-  return angry;
-}
-
-void Blinky::set_angry(bool state) {
-  angry = state;
-}
-
-
-
diff --git a/Uppgift-3-Spel/ghost.h b/Uppgift-3-Spel/ghost.h
deleted file mode 100644
index 2dd23626afd7ba68398b0b85966c979deaf1d546..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/ghost.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef GHOST_H
-#define GHOST_H
-
-#include "given.h"
-#include "string"
-using namespace std;
-
-class Ghost
-{
-public:
-    Ghost(std::string const &color, Point const &start_pos, Pacman& pac);
-    virtual void set_pos( Point new_pos);
-    virtual Point get_scatter() = 0;
-    virtual Point get_chase() = 0;
-    virtual Point get_pos();
-    virtual std::string get_color()const = 0;
-    virtual ~Ghost() = default;
-protected: 
-    std::string color_index;
-    Point pos; 
-    Pacman& pacman;
-};
-
-class Clyde: public Ghost
-{
-public:
-    Clyde(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos) override;
-    Point get_scatter() override ;
-    Point get_chase() override ;
-    Point get_pos() override;
-    std::string get_color()const;
-};
-
-class Pinky: public Ghost
-{
-public:
-    Pinky(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos)override;
-    Point get_scatter() override;
-    Point get_chase() override ;
-    Point get_pos()override;
-    std::string get_color()const;
-};
-
-class Blinky : public Ghost
-{
-public:
-    bool get_angry();
-    void set_angry(bool state);
-    Blinky(std::string const &color, Point const &start_pos, Pacman& pac);
-    void set_pos(Point new_pos)override;
-    Point get_scatter() override;
-    Point get_chase() override; // Blinky::get_chase(const Point&)’ marked ‘override’, but does not override
-    Point get_pos()override;
-    std::string get_color()const;
-private:
-    bool angry = false ;
-};
-
-#endif
\ No newline at end of file
diff --git a/Uppgift-3-Spel/given.cc b/Uppgift-3-Spel/given.cc
deleted file mode 100644
index 154bfe8f81b4c120c571f60e7e97b3480c0d1f87..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/given.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "given.h"
-
-int WIDTH = 19;
-int HEIGHT = 22;
-
-bool operator==(Point const& lhs, Point const& rhs)
-{
-    return lhs.x == rhs.x && lhs.y == rhs.y;
-}
-
-std::istream& operator>>(std::istream& is, Point& rhs)
-{
-    return is >> rhs.x >> rhs.y;
-}
-
-Pacman::Pacman()
-    : pos {}, dir {1,0}
-{}
-
-Point Pacman::get_position() const
-{
-    return pos;
-}
-
-void Pacman::set_position(Point const& p)
-{
-    if (p.x > WIDTH or p.x < 0 or p.y > HEIGHT or p.y < 0)
-    {
-        throw std::runtime_error("position outside valid range");
-    }
-    pos = p;
-}
-
-Point Pacman::get_direction() const
-{
-    return dir;
-}
-
-void Pacman::set_direction(Point const& p)
-{
-    if (p.x > 1 or p.x < -1 or p.y > 1 or p.y < -1 or abs(p.x + p.y) != 1)
-    {
-        throw std::runtime_error("direction outside valid range");
-    }
-    dir = p;
-}
diff --git a/Uppgift-3-Spel/given.h b/Uppgift-3-Spel/given.h
deleted file mode 100644
index 92b57b82966db209d7c3b0d63a7344dfe33a4fd1..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/given.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-  I denna fil finns ett utval av kod fr�n det dina kollegor skrivit till ert pacman-projekt. Det �r
-  precis det som du beh�ver f�r att skriva din del av koden.
-
-  Tips: Du f�r ut�ka denna fil med saker som du beh�ver f�r att ditt program ska kompilera. Det �r
-  �ven okej att ut�ka Point med fler operatorer om det skulle beh�vas.
- */
-
-
-#include <stdexcept>
-#include <iostream>
-
-
-/*
-  Globala variabler f�r storlek p� spelplanen.
-
-  Din kollega som skrev detta �r medveten om att globala variabler �r d�ligt och borde undvikas, men
-  har inte haft tid att �tg�rda det. I den slutgiltiga versionen av koden borde dessa s�klart l�sas
-  fr�n en fil med konfigurationsdata.
- */
-extern int WIDTH;
-extern int HEIGHT;
-
-
-/*
-  Ett aggregat som anv�nd f�r att representera punkter och riktninar p� spelplanen.
-  Aggregatet har ocks� hj�lpsamma operatorer som kan underl�tta din implementation.
-
- */
-struct Point
-{
-    int x;
-    int y;
-};
-bool operator==(Point const& lhs, Point const& rhs);
-std::istream& operator>>(std::istream& is, Point& rhs);
-
-
-/*
-  En klass f�r att representera spelarfiguren. Detta �r en nedskalad version j�mf�rt med det som
-  kollegan skrev till spelet. Notera att din kod inte beh�ver �ndras om man skulle g� fr�n denna
-  implementaion till den faktiska implementationen.
- */
-class Pacman
-{
-public:
-
-    Pacman();
-    
-    Point get_position() const;
-    void set_position(Point const& p);
-
-    Point get_direction() const;
-    void set_direction(Point const& p);
-
-private:
-    
-    Point pos {};
-    Point dir {};
-};
diff --git a/Uppgift-3-Spel/main.cc b/Uppgift-3-Spel/main.cc
deleted file mode 100644
index b113c93550246b253659d4fbf5a0bf871533a0e7..0000000000000000000000000000000000000000
--- a/Uppgift-3-Spel/main.cc
+++ /dev/null
@@ -1,175 +0,0 @@
-#include "ghost.h"
-//#include "given.h"
-#include <string>
-#include <iostream>
-#include <iomanip>
-#include <sstream>
-#include <vector>
-#include <cctype>
-
-using namespace std;
-
-/*
-  Ledning och Tips:
-
-  - Modifiera stukturen till en header-fil och en implementationsfil
-  - Ut�ka 'run()' och 'draw_map()' med �vrig funktionalitet.
-  - L�gg alla sp�ken i en l�mplig beh�llare som en datamedlem.
-  - Bryt ut stora kodblock till egna funktioner.
-  - Anv�nd hj�lpfunktioner f�r att undvika duplicering av kod.
-  - T�nk p� att varje funktion inte borde vara l�ngre �n 25 rader.
- */
-
-class Ghost_Tester
-{
-
-public:
-
-    Pacman pacman;
-    vector<Ghost*> all_ghosts;
-    
-    Ghost_Tester():
-     pacman {} ,all_ghosts{}
-    { 
-
-    all_ghosts.push_back(new Clyde("orange", Point{5,5}, pacman));
-    all_ghosts.push_back(new Blinky("red", Point{6,6}, pacman));
-    all_ghosts.push_back(new Pinky("pink", Point{7,7}, pacman)) ;  
-    }
-
-    void run()
-    {
-        while(true)
-        {
-            draw_map();
-            cout << "> ";
-
-            string line {};
-            getline(cin, line);
-            istringstream iss {line};
-        
-            string command {};
-            iss >> command;
-
-            for (Ghost* e : all_ghosts) 
-            {
-                if (command == e -> get_color())
-                {
-                    Point new_pos {};
-                    iss >> new_pos.x >> new_pos.y;
-                    e -> set_pos(new_pos);
-                }
-                else if (command == "chase")
-                {
-                    e -> set_pos(e -> get_chase());
-                }
-                else if (command == "scatter")
-                {
-                    e -> set_pos(e -> get_scatter());
-                }
-                else if (command == "anger")
-                {
-                    // behöver vara blinky
-                    if(e -> get_color() == "red") {
-                        dynamic_cast<Blinky*>(e) -> set_angry(true);
-                    }
-                }
-            }
-
-            if (command == "pos")
-            {
-                Point new_pos {};
-                iss >> new_pos.x >> new_pos.y;
-                pacman.set_position(new_pos);
-            }
-            else if (command == "dir")
-            {
-            }
-            else if (command == "quit")
-            {
-                for (Ghost* e : all_ghosts)
-                {
-                    delete e;
-                }
-                
-                break;
-            }
-        }
-    }
-    
-
-
-
-
-    //fixa följande funltion 
-private:
-
-    /*
-      En hj�lpfunktion som avg�r vilka tv� tecken som ska ritas ut f�r en given position p�
-      spelplanen.
-     */
-
-    Point pacmanPosition = pacman.get_position(); 
-    Point pacmanDirection = pacman.get_direction();
-     
-    string to_draw(Point const& curr_pos)
-        {
-            string to_draw{"  "};
-
-            if (pacman.get_position() == curr_pos)
-            {
-                to_draw[1] = '@';
-            }
-            for (Ghost* temp : all_ghosts) 
-            {
-                char r {temp -> get_color().at(0)};
-
-                if(temp -> get_chase() == curr_pos)
-                {
-                    to_draw[1] = r;
-                }
-                if(temp -> get_pos() == curr_pos)
-                {
-                    to_draw[1] = toupper(r);
-                }
-            }
-
-            return to_draw;
-        }
-    
-    /*
-      En hj�lpfunktion f�r att rita ut spelplanen f�r testprogrammet.
-      
-      Itererar �ver varje rad och column i kartan. Index f�r raderna �r flippade f�r att placera
-      y = 0 l�ngst ned.
-      
-      Varje punkt i kartan ritas som tv� tecken eftersom ett tecken i terminalen �r ca dubbelt s�
-      h�gt som det �r brett.
-    */
-    void draw_map()
-    {
-        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+\n";
-
-        for (int y {HEIGHT - 1}; y >= 0; --y) 
-        {
-            cout << "|";
-            for (int x {}; x < WIDTH; ++x) 
-            {
-                cout << to_draw( Point{x,y} );
-            }
-            cout << "|\n";
-        }
-    
-        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+" << endl;
-    }
-
-
-
-};
-
-int main()
-{
-    Ghost_Tester gt {};
-    gt.run();
-    return 0;
-}
diff --git a/main.cc b/main.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6f829e54e3d32bb6fc49c9732a18e72c9d0023c7
--- /dev/null
+++ b/main.cc
@@ -0,0 +1,112 @@
+#include "ghost.h"
+#include <string>
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+
+using namespace std;
+
+/*
+  Ledning och Tips:
+
+  - Modifiera stukturen till en header-fil och en implementationsfil
+  - Ut�ka 'run()' och 'draw_map()' med �vrig funktionalitet.
+  - L�gg alla sp�ken i en l�mplig beh�llare som en datamedlem.
+  - Bryt ut stora kodblock till egna funktioner.
+  - Anv�nd hj�lpfunktioner f�r att undvika duplicering av kod.
+  - T�nk p� att varje funktion inte borde vara l�ngre �n 25 rader.
+ */
+
+class Ghost_Tester
+{
+
+public:
+
+    Ghost_Tester()
+        : pacman {}
+    {
+    }
+
+    void run()
+    {
+        while(true)
+        {
+            draw_map();
+            cout << "> ";
+
+            string line {};
+            getline(cin, line);
+            istringstream iss {line};
+        
+            string command {};
+            iss >> command;
+
+            if (command == "pos")
+            {
+                Point new_pos {};
+                iss >> new_pos.x >> new_pos.y;
+                pacman.set_position(new_pos);
+            }
+            else if (command == "dir")
+            {
+            }
+            else if (command == "quit")
+            {
+                break;
+            }
+        }
+    }
+    
+private:
+
+    /*
+      En hj�lpfunktion som avg�r vilka tv� tecken som ska ritas ut f�r en given position p�
+      spelplanen.
+     */
+    string to_draw(Point const& curr_pos)
+    {
+        string to_draw{"  "};
+
+        if (pacman.get_position() == curr_pos)
+        {
+            to_draw[1] = '@';
+        }
+
+        return to_draw;
+    }
+    
+    /*
+      En hj�lpfunktion f�r att rita ut spelplanen f�r testprogrammet.
+      
+      Itererar �ver varje rad och column i kartan. Index f�r raderna �r flippade f�r att placera
+      y = 0 l�ngst ned.
+      
+      Varje punkt i kartan ritas som tv� tecken eftersom ett tecken i terminalen �r ca dubbelt s�
+      h�gt som det �r brett.
+    */
+    void draw_map()
+    {
+        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+\n";
+
+        for (int y {HEIGHT - 1}; y >= 0; --y) 
+        {
+            cout << "|";
+            for (int x {}; x < WIDTH; ++x) 
+            {
+                cout << to_draw( Point{x,y} );
+            }
+            cout << "|\n";
+        }
+    
+        cout << "+" << setfill('-') << setw(WIDTH * 2) << "-" << "+" << endl;
+    }
+
+    Pacman pacman;
+};
+
+int main()
+{
+    Ghost_Tester gt {};
+    gt.run();
+    return 0;
+}