Added scoring and chance-based algorithm picking #3
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user