summaryrefslogtreecommitdiff
path: root/src/Controllers
diff options
context:
space:
mode:
authormanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 09:58:01 +0200
committermanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 09:58:01 +0200
commit8488827025f25743ef18eca8c55cfdff5767341b (patch)
tree47dd0d789c264a472c7fc2313966733a30213866 /src/Controllers
parent9759972f351bd68001735419bcfb9a285c68bed7 (diff)
parent4cc6c6596b614fce392040b85a182dbf50d0b044 (diff)
Merge branch 'develop'
-Correct bugs -Manage score -Add some helpers -Optimize some code
Diffstat (limited to 'src/Controllers')
-rw-r--r--src/Controllers/ConsoleController/ConsoleController.cpp45
-rw-r--r--src/Controllers/ConsoleController/ConsoleController.hpp4
2 files changed, 41 insertions, 8 deletions
diff --git a/src/Controllers/ConsoleController/ConsoleController.cpp b/src/Controllers/ConsoleController/ConsoleController.cpp
index d91e807..1bc9b84 100644
--- a/src/Controllers/ConsoleController/ConsoleController.cpp
+++ b/src/Controllers/ConsoleController/ConsoleController.cpp
@@ -2,14 +2,22 @@
#include <SFML/Window/Keyboard.hpp>
#include "../../Helpers/Keyboard.hpp"
+
+//==================== Constructor and Destructor ====================
+
+//Constructor
ConsoleController::ConsoleController()
{
}
+//Destructor
ConsoleController::~ConsoleController()
{
}
+//==================== Helpers ====================
+
+//Run the game.
void ConsoleController::run()
{
@@ -22,6 +30,9 @@ void ConsoleController::run()
//Pop a random number on the grid
m_game.popRandomNumber();
+ //First cout stats
+ this->coutStats();
+
//First cout grid
m_game.coutGrid();
@@ -33,20 +44,27 @@ void ConsoleController::run()
keyPress=this->waitArrowKeyPress();
//Apply move
- m_game.swipe(keyPress);
+ bool moveDone=m_game.swipe(keyPress);
- //Pop a random number on the grid
- m_game.popRandomNumber();
+ //Cout stats
+ this->coutStats();
//Cout grid
m_game.coutGrid();
}
+
+ //Last cout stats
+ this->coutStats();
+
+ //Last cout grid
m_game.coutGrid();
}
+
+//Wait for keypress and return the keyPress.
kbdh::Direction ConsoleController::waitArrowKeyPress()
{
//Initialise keyPress
@@ -59,7 +77,8 @@ kbdh::Direction ConsoleController::waitArrowKeyPress()
keyPress=kbdh::Left;
while(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
- //Wait for release
+ //Wait for release and try to remove arrow printed characters
+ std::cout << "\r" << " ";
}
break;
}
@@ -68,7 +87,8 @@ kbdh::Direction ConsoleController::waitArrowKeyPress()
keyPress=kbdh::Right;
while(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
- //Wait for release
+ //Wait for release and try to remove arrow printed characters
+ std::cout << "\r" << " ";
}
break;
}
@@ -77,17 +97,18 @@ kbdh::Direction ConsoleController::waitArrowKeyPress()
keyPress=kbdh::Up;
while(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
- //Wait for release
+ //Wait for release and try to remove arrow printed characters
+ std::cout << "\r" << " ";
}
break;
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
- // la touche "flèche gauche" est enfoncée : on bouge le personnage
keyPress=kbdh::Down;
while(sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
- //Wait for release
+ //Wait for release and try to remove arrow printed characters
+ std::cout << "\r" << " ";
}
break;
}
@@ -95,3 +116,11 @@ kbdh::Direction ConsoleController::waitArrowKeyPress()
return keyPress;
}
+
+
+//Cout the stats of the game
+void ConsoleController::coutStats(){
+
+ std::cout << std::endl << "Score : " << m_game.getScore() << std::endl;
+ std::cout << "Nombre de coups : " << m_game.getNbMove() << std::endl;
+}
diff --git a/src/Controllers/ConsoleController/ConsoleController.hpp b/src/Controllers/ConsoleController/ConsoleController.hpp
index 8d73f79..f3e9952 100644
--- a/src/Controllers/ConsoleController/ConsoleController.hpp
+++ b/src/Controllers/ConsoleController/ConsoleController.hpp
@@ -18,9 +18,13 @@ class ConsoleController
Game m_game;
kbdh::Direction waitArrowKeyPress();
public:
+ //Constructor and Destructor
ConsoleController();
~ConsoleController();
+
+ //Helpers
void run();
+ void coutStats();
};
#endif