Skip to content
Snippets Groups Projects
Commit e256bf35 authored by Your Name's avatar Your Name
Browse files

les cases sont hexagonales + paysage MORT + beau affichage des paysages

parent 6134a63c
No related branches found
No related tags found
1 merge request!1entrer/sortir de fourmilliere, changer de case, ramasser bouffe, bouffe...
......@@ -13,7 +13,7 @@ CaseMap::CaseMap()
listeFourmis[indiceFourmi] = NULL;
}
paysageCase = PLAT;
paysageCase = MORT;
bouffeQuantity = 0;
for(int indicePath = 0; indicePath < TAILLEPATHPHEROMONE; indicePath++)
......
No preview for this file type
......@@ -23,8 +23,9 @@ const int LOWER_MASK = 0x7fffffffUL; /* least significant r bits */
//#include "pheromone.hpp"
//#include "caseMap.hpp"
const int LONGUEURMAP = 20;
const int LARGEURMAP = 20;
const int LONGUEURMAP = 31;
const int LARGEURMAP = 37;
const int NBRCASESVOISINES = 6;
const int TAILLEPATHPHEROMONE = 4;
const int QUANTITYBOUFFERECHARGEMENTMAP = 50000;
......@@ -53,7 +54,8 @@ enum PaysageCase
PLAT = 1,
HERBE = 2,
ROCHER = 4,
EAU = 8
EAU = 8,
MORT = -1
};
enum Bouffe
......
......@@ -12,6 +12,10 @@ void Manager::initialiserMap()
{
for(int j = 0; j < LARGEURMAP; j++)
{
if(i != 0 && i != LONGUEURMAP - 1 && j != 0 && j != LARGEURMAP - 1) // si c'est pas sur les bords de la map
{
bool goModifier = true;
double tiragePaysageCase = uniform(0, 1);
//cout << tiragePaysageCase << "\n";
PaysageCase paysageCaseTired;
......@@ -27,11 +31,17 @@ void Manager::initialiserMap()
{
paysageCaseTired = ROCHER;
}
else
else if(tiragePaysageCase <= 0.98)
{
paysageCaseTired = EAU;
}
else
{
goModifier = false;
}
if(goModifier)
{
int tirageQuantityBouffe = uniform_int(0, 10000);
map[i][j].SetPaysageCase(paysageCaseTired);
......@@ -39,19 +49,45 @@ void Manager::initialiserMap()
}
}
}
}
}
void Manager::afficherMap()
void Manager::afficherMapHexa()
{
cout << "Voici la map actuelle : Longueur = " << LONGUEURMAP << "; largeur = " << LARGEURMAP << "\n";
for(int ii = 0; ii < LARGEURMAP * 10 + 1; ii++)
for(int i = 0; i < LONGUEURMAP + 1; i++)
{
cout << " ";
if(i % 2 == 0)
{
cout << "-";
for(int j = 0; j < LARGEURMAP; j++)
{
cout << "┬────┴────";
}
cout << "\n";
cout << "┬────┴\n";
for(int i = 0; i < LONGUEURMAP; i++)
}
else
{
for(int j = 0; j < LARGEURMAP; j++)
{
cout << "┴────┬────";
}
cout << "┴────┬\n";
}
if(i < LONGUEURMAP)
{
if(i % 2 == 1)
{
cout << " ";
}
for(int j = 0; j < LARGEURMAP; j++)
{
if(map[i][j].GetPaysageCase() != MORT)
{
string caractere;
if(map[i][j].GetFourmilliereCase() != NULL)
......@@ -69,17 +105,102 @@ void Manager::afficherMap()
espace += caractere;
}
cout << " | " << map[i][j].GetBouffeQuantity() << espace << map[i][j].GetPaysageCase();
string paysage;
if(map[i][j].GetPaysageCase() == PLAT)
{
paysage = " ";
}
cout << " |\n ";
for(int ii = 0; ii < LARGEURMAP * 10 + 1; ii++)
else if(map[i][j].GetPaysageCase() == HERBE)
{
cout << "-";
paysage = "";
}
cout << "\n";
else if(map[i][j].GetPaysageCase() == ROCHER)
{
paysage = "■";
}
else if(map[i][j].GetPaysageCase() == EAU)
{
paysage = "█";
}
cout << " │ " << map[i][j].GetBouffeQuantity() << espace << paysage;
}
else
{
cout << " │ ███████";
}
}
cout << " │\n";
if(i % 2 == 1)
{
cout << " ";
}
for(int j = 0; j < LARGEURMAP; j++)
{
if(map[i][j].GetPaysageCase() != MORT)
{
string caractere;
if(map[i][j].GetFourmilliereCase() != NULL)
{
caractere = "*";
}
else
{
caractere = " ";
}
string espace = "";
int nbrEspaces = 7;
for(int ii = 0; ii < nbrEspaces; ii++)
{
espace += caractere;
}
cout << " │ " << espace;
}
else
{
cout << " │ ███████";
}
}
cout << " │\n";
}
}
/*
for(int j = 0; j < LARGEURMAP; j++)
{
cout << "┼─────────";
}
cout << "\n";
*/
}
//┼ ┤ ├ │ ¯ ─ ┐└ ┘┌ ┴ ┬ ░ ▒ ▓ █
// ┌-┐
// │ │ ¯¯¯¯____
// └-┘
//
//
// __¯¯__¯¯__¯¯__¯¯__
// │ ││ ││ ││ ││ │
// │ ││ ││ ││ ││ │
// __¯¯__¯¯__¯¯__¯¯__¯¯
// │ ││ ││ ││ ││ │
// │ ││ ││ ││ ││ │
// ¯¯ ¯¯ ¯¯ ¯¯ ¯¯
//
//
// /¯¯\ /¯¯\ /¯¯\ /¯¯\/
// │ │▓│ │▓│ │▓│ │
// │ │▓│ │▓│ │▓│ │
// \__/ \__/ \__/ \__/
// │ │ │ │ │ │
//
void Manager::placerFourmilliere(Fourmilliere* fourmilliereNonPlaced)
{
bool boolFourmilliereNonPlaced = true;
......@@ -88,7 +209,7 @@ void Manager::placerFourmilliere(Fourmilliere* fourmilliereNonPlaced)
int iTirage = uniform_int(0, LONGUEURMAP - 1);
int jTirage = uniform_int(0, LARGEURMAP - 1);
if(map[iTirage][jTirage].GetFourmilliereCase() == NULL)
if(map[iTirage][jTirage].GetFourmilliereCase() == NULL && map[iTirage][jTirage].GetPaysageCase() != MORT)
{
if(fourmilliereNonPlaced->GetNbrfourmisPresentes() != 0)
{
......@@ -112,6 +233,8 @@ void Manager::majMapBouffe()
int iCaseRecharged = uniform_int(0, LONGUEURMAP - 1);
int jCaseRecharged = uniform_int(0, LARGEURMAP - 1);
if(map[iCaseRecharged][jCaseRecharged].GetPaysageCase() != MORT)
{
int quantityBouffeRajouted = uniform_int(0, QUANTITYBOUFFERECHARGEMENTMAP / MINIMUMDECASESRECHARGED);
if(quantityBouffeRajouted > bouffePourRajout)
{
......@@ -123,6 +246,7 @@ void Manager::majMapBouffe()
//cout << quantityBouffeRajouted << "\n";
}
}
}
......@@ -131,6 +255,8 @@ void Manager::majMapPheromone()
for(int i = 0; i < LONGUEURMAP; i++)
{
for(int j = 0; j < LARGEURMAP; j++)
{
if(map[i][j].GetPaysageCase() != MORT)
{
for(int indicePath = 0; indicePath < TAILLEPATHPHEROMONE; indicePath++)
{
......@@ -153,3 +279,4 @@ void Manager::majMapPheromone()
}
}
}
}
......@@ -18,7 +18,7 @@ class Manager
int id;
static CaseMap map[LONGUEURMAP][LARGEURMAP];
void initialiserMap();
void afficherMap();
void afficherMapHexa();
void placerFourmilliere(Fourmilliere*);
void majMapBouffe();
void majMapPheromone();
......
......@@ -104,10 +104,10 @@ int main()
cout << "etat " << eau << "\n" << "\n";
cout << "log10 de 1200 : " << (int)log10(9) << "\n";
manager.afficherMap();
manager.afficherMapHexa();
manager.majMapBouffe();
manager.majMapPheromone();
manager.afficherMap();
manager.afficherMapHexa();
/*
cout << newFourmilliere.GetNbrfourmisLoyales() << "\n\n";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment