From c71b1d6982cb67056e466084c37a0031104e55ee Mon Sep 17 00:00:00 2001 From: TriantaTV Date: Thu, 10 Aug 2023 18:47:40 -0500 Subject: [PATCH] Added ability to play again --- src/gamestate.cpp | 3 ++- src/playerinterface.cpp | 2 +- src/snake.cpp | 5 +++++ src/snake.hpp | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gamestate.cpp b/src/gamestate.cpp index 51a5470..dee0df1 100755 --- a/src/gamestate.cpp +++ b/src/gamestate.cpp @@ -31,6 +31,8 @@ namespace snakeplusplus if (isGameOver) { graphics.CheckContinue(); + player.Reset(); + PrepareGameBoard(); isGameOver = 0; } UpdatePlayerSpeed(); @@ -69,7 +71,6 @@ namespace snakeplusplus player.Pop(); } catch (const std::out_of_range& error) { isGameOver = true; // Snake ran into edge - exit(0); } } diff --git a/src/playerinterface.cpp b/src/playerinterface.cpp index 8e297d4..c2465ce 100755 --- a/src/playerinterface.cpp +++ b/src/playerinterface.cpp @@ -66,7 +66,7 @@ namespace snakeplusplus textPosition.y = textPosition.y / 2; sf::Font font; font.loadFromFile("Arial.ttf"); - sf::Text gameOverText("Game Over", font); + sf::Text gameOverText("Game Over\nPress 'Enter' to play again", font); gameOverText.setPosition(textPosition); gameWindow.draw(gameOverText); gameWindow.display(); diff --git a/src/snake.cpp b/src/snake.cpp index 8de60c0..9871cb5 100755 --- a/src/snake.cpp +++ b/src/snake.cpp @@ -14,6 +14,11 @@ namespace snakeplusplus body.pop(); } + void Snake::Reset(void) + { + while (!body.empty()) Pop(); + } + Food::Food(void) { generator.seed(std::random_device{}()); diff --git a/src/snake.hpp b/src/snake.hpp index 3ed81ea..01392cf 100755 --- a/src/snake.hpp +++ b/src/snake.hpp @@ -17,6 +17,7 @@ namespace snakeplusplus sf::Vector2f speed; std::queue body; void Pop(void); + void Reset(void); }; struct Food