#include "Game.hpp" //==================== Constructor and Destructor ==================== //Constructor Game::Game() : m_grid(), m_score(0), m_nbMove(0){ } //Destructor Game::~Game(){ } //==================== Helpers ==================== //Swipe action bool Game::swipe(kbdh::Direction direction){ bool moveDone; switch(direction){ case kbdh::Left: moveDone=m_grid.swipeLeft(); break; case kbdh::Right: moveDone=m_grid.swipeRight(); break; case kbdh::Up: moveDone=m_grid.swipeUp(); break; case kbdh::Down: moveDone=m_grid.swipeDown(); break; } if(moveDone){ m_score+=m_grid.getLastMoveScore(); m_nbMove++; this->popRandomNumber(); } return moveDone; } //Cout the grid void Game::coutGrid(){ std::cout << m_grid.description(); } //Return true if the game is lost. False else. bool Game::isOver(){ return m_grid.isOver(); } //Pop a random number on the grid void Game::popRandomNumber(){ std::tuple coord(m_grid.getRandomEmptyCellCoord()); int percent=rand() % 100; int number; if(percent <= 10){ number=4; } else{ number=2; } m_grid.setCell(coord, number); } //==================== Getters and Setter ==================== //Retrieve the Score int Game::getScore(){ return m_score; } //Retrieve the number of moves int Game::getNbMove(){ return m_nbMove; } std::vector > Game::getGrid(){ return m_grid.getGrid(); } int Game::maxStrLenInGrid(){ return m_grid.maxStrLenInGrid(); }