gamemanager.h 994 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <vector>
  3. #include <hotseatgame/unitsqueue.h>
  4. #include <playermanager.h>
  5. class Cell;
  6. class GameManager : public QObject
  7. {
  8. public:
  9. void buildGameTable(int, int);
  10. static GameManager& getInstance() {
  11. static GameManager instance;
  12. return instance;
  13. }
  14. void buildGameTable(int colSize, int rowSize, double radius,
  15. double start_x_coordinate, double start_y_coordinate);
  16. UnitsQueue* getTurnQueue();
  17. void AddToUnitQueue(Unit* unit);
  18. void RmFromUnitQueue(Unit* unit);
  19. Player* getCurrentPlayer();
  20. int getCurPlayerId();
  21. private:
  22. explicit GameManager(QObject *parent = nullptr);
  23. std::vector< std::vector< Cell* > > game_table_;
  24. int col_table_size_, row_table_size_;
  25. double cell_radius_, start_x_coordinate_, start_y_coordinate_;
  26. void generateTable();
  27. /******************************/
  28. UnitsQueue turn_queue_;
  29. PlayerManager* player_manager_;
  30. int cur_player_id_;
  31. };