diff --git a/src/gamestate.cpp b/src/gamestate.cpp index 67941f4..329c5c0 100755 --- a/src/gamestate.cpp +++ b/src/gamestate.cpp @@ -1,7 +1,6 @@ // GameState.cpp #include #include -#include #include "common.hpp" #include "playerinterface.hpp" #include "gamestate.hpp" @@ -99,19 +98,16 @@ namespace snakeplusplus sf::Vector2f boardDimensions = GetGameBoundaries(); gameBoard.resize(boardDimensions.y, std::vector (boardDimensions.x, ' ')); // Snake setup + player.headLocation.x = GenerateRandomNumber(boardDimensions.x); + player.headLocation.y = GenerateRandomNumber(boardDimensions.y); { - player.headLocation.x = GenerateRandomNumber(boardDimensions.x); - player.headLocation.y = GenerateRandomNumber(boardDimensions.y); char* locationState = &gameBoard.at(player.headLocation.y).at(player.headLocation.x); player.body.push(locationState); *locationState = 'O'; } // Food setup - { - playerFood.GenerateNewFood(boardDimensions); - sf::Vector2f newLocation = playerFood.location; - gameBoard.at(newLocation.y).at(newLocation.x) = 'X'; - } + playerFood.GenerateNewFood(boardDimensions); + gameBoard.at(playerFood.location.y).at(playerFood.location.x) = 'X'; return; } @@ -119,18 +115,22 @@ namespace snakeplusplus { switch (GetPlayerInput()) { case kUp: + if (player.speed.y == 1) { break; } player.speed.x = 0; player.speed.y = -1; break; case kLeft: + if (player.speed.x == 1) { break; } player.speed.x = -1; player.speed.y = 0; break; case kRight: + if (player.speed.x == -1) { break; } player.speed.x = 1; player.speed.y = 0; break; case kDown: + if (player.speed.y == -1) { break; } player.speed.x = 0; player.speed.y = 1; break;