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.cpp112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/Controllers/ConsoleController/ConsoleController.cpp b/src/Controllers/ConsoleController/ConsoleController.cpp
new file mode 100644
index 0000000..4be0375
--- /dev/null
+++ b/src/Controllers/ConsoleController/ConsoleController.cpp
@@ -0,0 +1,112 @@
+#include "./ConsoleController.hpp"
+#include <SFML/Window/Keyboard.hpp>
+#include "../../Helpers/Keyboard.hpp"
+
+ConsoleController::ConsoleController()
+{
+ m_game = new Game();
+}
+
+ConsoleController::~ConsoleController()
+{
+ delete m_game;
+}
+
+void ConsoleController::play()
+{
+ //Intruction msg
+ std::cout << "Use arrows to play !" << std::endl;
+
+ //Init keyPress
+ kbdh::Direction keyPress;
+
+ //Display the first grid
+ m_game->showGrid();
+
+ //Start game
+ while (!m_game->isOver())
+ {
+ //Get key press
+ keyPress=this->waitArrowKeyPress();
+
+ //New line for the console print arrow press
+ std::cout << std::endl;
+
+
+ //Print keyPress
+ switch(keyPress){
+ case kbdh::Up:
+ std::cout << "Keypress : Up" << std::endl;
+ break;
+ case kbdh::Down:
+ std::cout << "Keypress : Down" << std::endl;
+ break;
+ case kbdh::Left:
+ std::cout << "Keypress : Left" << std::endl;
+ break;
+ case kbdh::Right:
+ std::cout << "Keypress : Right" << std::endl;
+ break;
+ }
+
+ //Show the Grid
+ m_game->showGrid();
+ std::cout << std::endl;
+
+
+ //Pop new number
+ m_game->pop();
+
+ }
+}
+
+
+
+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;
+}