summaryrefslogtreecommitdiff
path: root/src/Controllers/ConsoleController/ConsoleController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Controllers/ConsoleController/ConsoleController.cpp')
-rw-r--r--src/Controllers/ConsoleController/ConsoleController.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/Controllers/ConsoleController/ConsoleController.cpp b/src/Controllers/ConsoleController/ConsoleController.cpp
new file mode 100644
index 0000000..d91e807
--- /dev/null
+++ b/src/Controllers/ConsoleController/ConsoleController.cpp
@@ -0,0 +1,97 @@
+#include "./ConsoleController.hpp"
+#include <SFML/Window/Keyboard.hpp>
+#include "../../Helpers/Keyboard.hpp"
+
+ConsoleController::ConsoleController()
+{
+}
+
+ConsoleController::~ConsoleController()
+{
+}
+
+void ConsoleController::run()
+{
+
+ //Init keyPress
+ kbdh::Direction keyPress;
+
+ //Intruction msg
+ std::cout << "Use arrows to play !" << std::endl;
+
+ //Pop a random number on the grid
+ m_game.popRandomNumber();
+
+ //First cout grid
+ m_game.coutGrid();
+
+
+ //Start game
+ while (!m_game.isOver())
+ {
+ //Get key press
+ keyPress=this->waitArrowKeyPress();
+
+ //Apply move
+ m_game.swipe(keyPress);
+
+ //Pop a random number on the grid
+ m_game.popRandomNumber();
+
+ //Cout grid
+ m_game.coutGrid();
+
+ }
+ m_game.coutGrid();
+}
+
+
+
+kbdh::Direction ConsoleController::waitArrowKeyPress()
+{
+ //Initialise keyPress
+ kbdh::Direction keyPress;
+
+ //Wait for keypress
+ while(1){
+ if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
+ {
+ keyPress=kbdh::Left;
+ while(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
+ {
+ //Wait for release
+ }
+ break;
+ }
+ if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
+ {
+ keyPress=kbdh::Right;
+ while(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
+ {
+ //Wait for release
+ }
+ break;
+ }
+ if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
+ {
+ keyPress=kbdh::Up;
+ while(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
+ {
+ //Wait for release
+ }
+ 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
+ }
+ break;
+ }
+ }
+
+ return keyPress;
+}