123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * Someone tells, that Qt can to build this
- */
- #include "include/hotseatgame/gamemanager.h"
- #include "cell.h"
- #include <iostream>
- GameManager::GameManager(QObject *parent) : QObject(parent)
- {
- }
- void GameManager::buildGameTable(int colSize, int rowSize){
- col_table_size_ = colSize;
- row_table_size_ = rowSize;
- generateTable();
- }
- void GameManager::generateTable() {
- game_table_.assign(col_table_size_, std::vector< Cell* >(row_table_size_, nullptr));
- for (int col = 0; col < col_table_size_; ++col) {
- for (int row = 0; row < row_table_size_; ++row) {
- game_table_[col][row] = new Cell(nullptr);
- }
- }
- int isEven = 1;
- for (int col = 0; col < col_table_size_; ++col) {
- isEven ^= 1;
- for (int row = 0; row < row_table_size_; ++row) {
- if (col != 0 && row != 0 -isEven) {
- game_table_[col][row]->setleftUp(game_table_[col - 1][row - 1 +isEven]);
- }
- if (row != 0) {
- game_table_[col][row]->setleft(game_table_[col][row - 1]);
- }
- if (col != col_table_size_ - 1 && row != 0 -isEven) {
- game_table_[col][row]->setleftDown(game_table_[col + 1][row - 1 +isEven]);
- }
- if (col != 0 && row != row_table_size_ -isEven) {
- game_table_[col][row]->setrightUp(game_table_[col - 1][row +isEven]);
- }
- if (row != row_table_size_ - 1) {
- game_table_[col][row]->setright(game_table_[col][row + 1]);
- }
- if (col != col_table_size_ - 1 && row != row_table_size_ -isEven) {
- game_table_[col][row]->setrightDown(game_table_[col + 1][row +isEven]);
- }
- }
- }
- }
- void GameManager::printAll() {
- game_table_[0][0]->RecalculateTableWithCenterThisPoint();
- for (int col = 0; col < col_table_size_; ++col) {
- for (int row = 0; row < row_table_size_; ++row) {
- game_table_[col][row]->print();
- }
- std::cout << std::endl;
- }
- }
- UnitsQueue* GameManager::getTurnQueue(){
- return &turn_queue_;
- }
- void GameManager::AddToUnitQueue(Unit* unit){
- turn_queue_.add(unit);
- }
- void GameManager::RmFromUnitQueue(Unit* unit){
- turn_queue_.remove(unit);
- }
- int GameManager::getCurPlayerId(){
- return cur_player_id_;
- };
- Player* GameManager::getCurrentPlayer(){
- return player_manager_->getPlayer(cur_player_id_);
- }
|