Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider f7dd96e5 rédigé par Florian Dargère's avatar Florian Dargère
Parcourir les fichiers

Correction du tri des régions par taille

parent 3c73e1a3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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;
......
......@@ -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);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter