From f7dd96e5df4f34f347e1c867e78fa9cc6e374379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Darg=C3=A8re?= <52320926+floriandrg@users.noreply.github.com> Date: Fri, 28 May 2021 18:41:37 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20du=20tri=20des=20r=C3=A9gions=20pa?= =?UTF-8?q?r=20taille?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StrategyBase/src/CMap.cpp | 1 + StrategyBase/src/StrategyBase.cpp | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/StrategyBase/src/CMap.cpp b/StrategyBase/src/CMap.cpp index 805c520..c1d92cd 100644 --- a/StrategyBase/src/CMap.cpp +++ b/StrategyBase/src/CMap.cpp @@ -53,6 +53,7 @@ void CMap::FindConnexComponent(int idPlayer) CalculRegion(cells[i]); vec_regions.push_back(new Region(vec_region)); + std::sort(begin(vec_regions), end(vec_regions), [](Region* reg1, Region* reg2) {return (reg1->r_cells.size() > reg2->r_cells.size()); }); } } regions[idPlayer] = vec_regions; diff --git a/StrategyBase/src/StrategyBase.cpp b/StrategyBase/src/StrategyBase.cpp index 63f7604..760ff02 100644 --- a/StrategyBase/src/StrategyBase.cpp +++ b/StrategyBase/src/StrategyBase.cpp @@ -3,9 +3,6 @@ #include <fstream> #include <queue> -//FindConnexComponents dans Map -//Dijkstra dans Map surchargée pour région et cell - StrategyBase::StrategyBase(unsigned int id, unsigned int nbPlayer, const SMap* map) : Id(id), NbPlayer(nbPlayer), @@ -16,6 +13,7 @@ StrategyBase::StrategyBase(unsigned int id, unsigned int nbPlayer, const SMap* m StrategyBase::~StrategyBase() { // détruire proprement la structure Map + } @@ -44,6 +42,10 @@ bool StrategyBase::PlayTurn(unsigned int gameTurn, const SGameState* state, STur Map.updateMap(state); Map.FindConnexComponent(Id); + std::cout << "Régions" << std::endl; + for (auto& it : Map.regions[Id]) { + std::cout << it->r_cells.size() << std::endl; + } /*On calcule le meilleur couple de cellules entre notre plus grande composante connexe et notre deuxième plus grande, et on détermine le chemin pour rejoindre @@ -52,17 +54,17 @@ bool StrategyBase::PlayTurn(unsigned int gameTurn, const SGameState* state, STur { std::pair<std::vector<Cell*>, int> best_path = Map.DijkstraAlgo(Map.regions[Id][0], Map.regions[Id][1]); - std::cout << "Plus de 2 composantes" << std::endl; - std::cout << "Longueur du path : " << best_path.first.size() << std::endl; - std::cout << "Distance du path : " << best_path.second << std::endl; + //std::cout << "Plus de 2 composantes" << std::endl; + //std::cout << "Longueur du path : " << best_path.first.size() << std::endl; + //std::cout << "Distance du path : " << best_path.second << std::endl; if (!best_path.first.empty()) { turn->cellFrom = best_path.first[0]->id; turn->cellTo = best_path.first[1]->id; - std::cout << "StratConnex" << std::endl; - std::cout << "cellFrom" << turn->cellFrom << std::endl; - std::cout << "cellTo" << turn->cellTo << std::endl; + //std::cout << "StratConnex" << std::endl; + //std::cout << "cellFrom" << turn->cellFrom << std::endl; + //std::cout << "cellTo" << turn->cellTo << std::endl; return(true); } } @@ -82,7 +84,7 @@ bool StrategyBase::PlayTurn(unsigned int gameTurn, const SGameState* state, STur if (Map.cells[numCell]->owner == Id) { for (unsigned int numNeighbor = 0; numNeighbor < Map.cells[numCell]->nbNeighbors; numNeighbor++) { if (Map.cells[numCell]->nbDices > Map.cells[numCell]->neighbors[numNeighbor]->nbDices and Map.cells[numCell]->neighbors[numNeighbor]->owner != Id) { - std::cout << "StratBase" << std::endl; + //std::cout << "StratBase" << std::endl; turn->cellFrom = numCell; turn->cellTo = Map.cells[numCell]->neighbors[numNeighbor]->id; return(true); -- GitLab