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