From 048f1e17b752d2af53db82c1861002283fc300fa Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Fri, 1 May 2015 13:18:26 +0200 Subject: Add some newers things : -Change helper ModelConstants to Keyboard -Now helpers is in folder Helpers -Change direction name to use CamelCase --- src/CMakeLists.txt | 2 +- src/Controller/CMakeLists.txt | 1 - src/Controller/ConsoleController/CMakeLists.txt | 3 - .../ConsoleController/ConsoleController.cpp | 112 --------------------- .../ConsoleController/ConsoleController.hpp | 25 ----- src/Controllers/CMakeLists.txt | 1 + src/Controllers/ConsoleController/CMakeLists.txt | 3 + .../ConsoleController/ConsoleController.cpp | 112 +++++++++++++++++++++ .../ConsoleController/ConsoleController.hpp | 26 +++++ src/Helpers/Keyboard.hpp | 17 ++++ src/Model/Grid.cpp | 82 --------------- src/Model/Grid.hpp | 8 +- src/Model/ModelConstants.hpp | 12 --- src/main.cpp | 2 +- 14 files changed, 162 insertions(+), 244 deletions(-) delete mode 100644 src/Controller/CMakeLists.txt delete mode 100644 src/Controller/ConsoleController/CMakeLists.txt delete mode 100644 src/Controller/ConsoleController/ConsoleController.cpp delete mode 100644 src/Controller/ConsoleController/ConsoleController.hpp create mode 100644 src/Controllers/CMakeLists.txt create mode 100644 src/Controllers/ConsoleController/CMakeLists.txt create mode 100644 src/Controllers/ConsoleController/ConsoleController.cpp create mode 100644 src/Controllers/ConsoleController/ConsoleController.hpp create mode 100644 src/Helpers/Keyboard.hpp delete mode 100644 src/Model/ModelConstants.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a1c4ccb..da444d2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -15,4 +15,4 @@ include_directories(${SFML_INCLUDE_DIR}) target_link_libraries(2P11 ${SFML_LIBRARIES} Model ConsoleController) add_subdirectory(./Model) -add_subdirectory(./Controller/) +add_subdirectory(./Controllers/) diff --git a/src/Controller/CMakeLists.txt b/src/Controller/CMakeLists.txt deleted file mode 100644 index 7ebeb19..0000000 --- a/src/Controller/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(./ConsoleController/) diff --git a/src/Controller/ConsoleController/CMakeLists.txt b/src/Controller/ConsoleController/CMakeLists.txt deleted file mode 100644 index d42803f..0000000 --- a/src/Controller/ConsoleController/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -#Make Model lib -add_library(ConsoleController ./ConsoleController.cpp) -target_link_libraries(ConsoleController Model) diff --git a/src/Controller/ConsoleController/ConsoleController.cpp b/src/Controller/ConsoleController/ConsoleController.cpp deleted file mode 100644 index a2a4a77..0000000 --- a/src/Controller/ConsoleController/ConsoleController.cpp +++ /dev/null @@ -1,112 +0,0 @@ -#include "./ConsoleController.hpp" -#include -#include "../../Model/ModelConstants.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 - 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 UP: - std::cout << "Keypress : Up" << std::endl; - break; - case DOWN: - std::cout << "Keypress : Down" << std::endl; - break; - case LEFT: - std::cout << "Keypress : Left" << std::endl; - break; - case RIGHT: - std::cout << "Keypress : Right" << std::endl; - break; - } - - //Show the Grid - m_game->showGrid(); - std::cout << std::endl; - - - //Pop new number - m_game->pop(); - - } -} - - - -Direction ConsoleController::waitArrowKeyPress() -{ - //Initialise keyPress - Direction keyPress; - - //Wait for keypress - while(1){ - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) - { - keyPress=LEFT; - while(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) - { - //Wait for release - } - break; - } - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) - { - keyPress=RIGHT; - while(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) - { - //Wait for release - } - break; - } - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) - { - keyPress=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=DOWN; - while(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) - { - //Wait for release - } - break; - } - } - - return keyPress; -} diff --git a/src/Controller/ConsoleController/ConsoleController.hpp b/src/Controller/ConsoleController/ConsoleController.hpp deleted file mode 100644 index 317759c..0000000 --- a/src/Controller/ConsoleController/ConsoleController.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef DEF_CTCONSOLE -#define DEF_CTCONSOLE - -/* CTConsole.hpp - * Defines the class CTConsole - * CTConsole is a controller which displays a game in a terminal - * Creators : krilius, manzerbredes - * Date : 29/04/2915 */ - -#include -#include "../../Model/Game.hpp" - -class ConsoleController -{ - private: - - Game * m_game; - Direction waitArrowKeyPress(); - public: - ConsoleController(); - ~ConsoleController(); - void play(); -}; - -#endif diff --git a/src/Controllers/CMakeLists.txt b/src/Controllers/CMakeLists.txt new file mode 100644 index 0000000..7ebeb19 --- /dev/null +++ b/src/Controllers/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(./ConsoleController/) diff --git a/src/Controllers/ConsoleController/CMakeLists.txt b/src/Controllers/ConsoleController/CMakeLists.txt new file mode 100644 index 0000000..d42803f --- /dev/null +++ b/src/Controllers/ConsoleController/CMakeLists.txt @@ -0,0 +1,3 @@ +#Make Model lib +add_library(ConsoleController ./ConsoleController.cpp) +target_link_libraries(ConsoleController Model) 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 +#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; +} diff --git a/src/Controllers/ConsoleController/ConsoleController.hpp b/src/Controllers/ConsoleController/ConsoleController.hpp new file mode 100644 index 0000000..6ce8df9 --- /dev/null +++ b/src/Controllers/ConsoleController/ConsoleController.hpp @@ -0,0 +1,26 @@ +#ifndef DEF_CTCONSOLE +#define DEF_CTCONSOLE + +/* CTConsole.hpp + * Defines the class CTConsole + * CTConsole is a controller which displays a game in a terminal + * Creators : krilius, manzerbredes + * Date : 29/04/2915 */ + +#include +#include "../../Helpers/Keyboard.hpp" +#include "../../Model/Game.hpp" + +class ConsoleController +{ + private: + + Game * m_game; + kbdh::Direction waitArrowKeyPress(); + public: + ConsoleController(); + ~ConsoleController(); + void play(); +}; + +#endif diff --git a/src/Helpers/Keyboard.hpp b/src/Helpers/Keyboard.hpp new file mode 100644 index 0000000..9d2dfa3 --- /dev/null +++ b/src/Helpers/Keyboard.hpp @@ -0,0 +1,17 @@ +#ifndef DEF_MODELCONSTANTS +#define DEF_MODELCONSTANTS + +/* ModelConstants.hpp + * Constains constants and enums used in the whole model + * Creators : krilius, manzerbredes + * Date : 29/04/2015 */ + +namespace kbdh { + + //Key arrow + enum Direction { Up, Down, Left, Right }; + typedef enum Direction Direction; + +} + +#endif diff --git a/src/Model/Grid.cpp b/src/Model/Grid.cpp index 75c0209..cc9cdb1 100644 --- a/src/Model/Grid.cpp +++ b/src/Model/Grid.cpp @@ -82,86 +82,4 @@ void Grid::setCell(int i, int j, Cell *cell) } -void Grid::move(Direction direction) -{ - switch (direction) - { - case UP: - - break; - - case DOWN: - break; - - case LEFT: - break; - - case RIGHT: - break; - - default: - break; - } -} - -void Grid::moveDown() -{/* - for (int i = 0 ; i < m_size; i++) - { - // If the column is full, check the next column - bool columnIsFull = true; - - for (int j = 0; j < m_size; j++) - { - if (m_table[j][i]->isEmpty()) - { - columnIsFull = false; - break; - } - } - while (!columnIsFull) - { - // Calculate the first line to merge - int firstLine = m_size - 1; - while (m_table[firstLine][i]->isEmpty() && firstLine > 0) - firstLine--; - if (firstLine == 0) - break; - - // Calculate the second line to merge - int secondLine = firstLine - 1; - while (m_table[secondLine][i]->isEmpty() && secondLine > 0) - secondLine--; - - // If there is only one element, pull it down - if (m_table[secondLine][i]->isEmpty() && firstLine != m_size - 1) - { - Cell * originalCell = m_table[firstLine][i]; - Cell * finalCell = m_table[m_size-1][i]; - - m_table[firstLine][i] = finalCell; - m_table[m_size-1][i] = originalCell; - - break; - } - - // If there is only one element which is at the full bottom, break the loop - if (m_table[secondLine][i]->isEmpty()) - break; - - // If there are two "good" elements, begin the merge process - Cell * cell1 = m_table[firstLine][i]; - Cell * cell2 = m_table[secondLine][i]; - - Cell * mergedCell = NULL; - - // If the two cells are the same, merge them - if (cell1->equals(cell2)) - { - int value = std::stoi(cell1->getValue()); - mergedCell = new Cell(std::to_string(value)); - } - } - }*/ -} diff --git a/src/Model/Grid.hpp b/src/Model/Grid.hpp index 2a28559..c431cb3 100644 --- a/src/Model/Grid.hpp +++ b/src/Model/Grid.hpp @@ -10,7 +10,7 @@ #include #include -#include "ModelConstants.hpp" +//#include "ModelConstants.hpp" #include "Cell.hpp" class Grid @@ -19,11 +19,6 @@ class Grid int m_size; std::vector > m_table; - void moveUp(); - void moveDown(); - void moveLeft(); - void moveRight(); - public: Grid(int size); ~Grid(); @@ -33,7 +28,6 @@ class Grid bool gridIsFull(); void setCell(int i, int j, Cell * cell); - void move(Direction direction); }; diff --git a/src/Model/ModelConstants.hpp b/src/Model/ModelConstants.hpp deleted file mode 100644 index 5cbc21b..0000000 --- a/src/Model/ModelConstants.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef DEF_MODELCONSTANTS -#define DEF_MODELCONSTANTS - -/* ModelConstants.hpp - * Constains constants and enums used in the whole model - * Creators : krilius, manzerbredes - * Date : 29/04/2015 */ - -enum Direction { UP, DOWN, LEFT, RIGHT }; -typedef enum Direction Direction; - -#endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 52444a9..26062a9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,7 +7,7 @@ //----- Personnal include ----- #include "./Model/Grid.hpp" -#include "./Controller/ConsoleController/ConsoleController.hpp" +#include "./Controllers/ConsoleController/ConsoleController.hpp" //----------------------------- -- cgit v1.2.3