diff --git a/src/botinterface.cpp b/src/botinterface.cpp
index 4ac0535..535230b 100755
--- a/src/botinterface.cpp
+++ b/src/botinterface.cpp
@@ -136,6 +136,12 @@ namespace snakeplusplus
             }
             for (sf::Vector2f newLocation : localLocations) {
                 try {
+                    if (newLocation.x < 2 || newLocation.y < 2 
+                            || newLocation.x > boundaries.x - 2 
+                            || newLocation.y > boundaries.y - 2) {
+                        continue;
+
+                    }
                     if ((!visited.at(newLocation.y).at(newLocation.x))
                             && (gameBoard.at(newLocation.y).at(newLocation.x) == ' ')) {
                         search.push(newLocation);
diff --git a/src/gamestate.cpp b/src/gamestate.cpp
index 5e37107..8b44d8c 100755
--- a/src/gamestate.cpp
+++ b/src/gamestate.cpp
@@ -36,13 +36,15 @@ namespace snakeplusplus
 
     void GameEngine::Loop(void)
     {
+        int currentScore = 0;
         while (graphics.IsOpen())
         {
             if (isGameOver) { Reset(); }
             UpdatePlayerSpeed();
             PlaceNewSnakePart(MovePlayer());
             RegenerateFood();
-            graphics.DisplayGameState(gameBoard);
+            currentScore = player.body.size() * 100;
+            graphics.DisplayGameState(gameBoard, currentScore);
         }
         return;
     }
diff --git a/src/playerinterface.cpp b/src/playerinterface.cpp
index ac01982..55a7ca3 100755
--- a/src/playerinterface.cpp
+++ b/src/playerinterface.cpp
@@ -71,7 +71,20 @@ namespace snakeplusplus
         return;
     }
 
-    void PlayerOutput::DisplayGameState(std::vector< std::vector<char> >& gameBoard)
+    void PlayerOutput::DisplayScore(int score) {
+        sf::Vector2f textPosition(gameBoundaries);
+        textPosition.x = textPosition.x / 2;
+        textPosition.y = textPosition.y / 2;
+        sf::Font font;
+        font.loadFromFile("Arial.ttf");
+        std::string text = "Score: " + std::to_string(score);
+        sf::Text ScoreText(text, font);
+        ScoreText.setPosition(textPosition);
+        gameWindow.draw(ScoreText);
+        
+    }
+
+    void PlayerOutput::DisplayGameState(std::vector< std::vector<char> >& gameBoard, int score)
     {
         CheckWindowEvents();
         char* letterOnBoard;
@@ -94,6 +107,7 @@ namespace snakeplusplus
                 }
             }
         }
+        DisplayScore(score);
         gameWindow.display();
         sf::sleep(delay);
         return;
diff --git a/src/playerinterface.hpp b/src/playerinterface.hpp
index 861a2b6..f4a824b 100755
--- a/src/playerinterface.hpp
+++ b/src/playerinterface.hpp
@@ -17,7 +17,8 @@ namespace snakeplusplus
         PlayerOutput(void);
         bool IsOpen(void);
         void CheckContinue(bool isBotControlled);
-        void DisplayGameState(std::vector< std::vector<char> >& gameBoard);
+        void DisplayGameState(std::vector< std::vector<char> >& gameBoard, int score);
+        void DisplayScore(int score);
         void StartGameWindow(void);
     private:
         void CheckWindowEvents(void);