Skip to content
Snippets Groups Projects
Commit fa0dc1c9 authored by jorane's avatar jorane
Browse files

Demo

parent 071e494e
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
build/FourmiRecoltrice.o: src/FourmiRecoltrice.cpp \
src/FourmiRecoltrice.hpp src/Fourmi.hpp src/Grille.hpp src/Case.hpp
src/FourmiRecoltrice.hpp src/Fourmi.hpp src/Grille.hpp src/Case.hpp \
src/Ressource.hpp
No preview for this file type
build/FourmiReine.o: src/FourmiReine.cpp src/FourmiReine.hpp \
src/Fourmi.hpp src/Grille.hpp src/Case.hpp src/FourmiRecoltrice.hpp \
src/FourmiSoldat.hpp src/mt19937ar.hpp
src/Fourmi.hpp src/Grille.hpp src/Case.hpp src/Ressource.hpp \
src/FourmiRecoltrice.hpp src/FourmiSoldat.hpp src/mt19937ar.hpp
No preview for this file type
build/FourmiSoldat.o: src/FourmiSoldat.cpp src/FourmiSoldat.hpp \
src/Fourmi.hpp src/Grille.hpp src/Case.hpp
src/Fourmi.hpp src/Grille.hpp src/Case.hpp src/Ressource.hpp
No preview for this file type
build/Grille.o: src/Grille.cpp src/Grille.hpp src/Case.hpp src/Fourmi.hpp \
src/Fourmiliere.hpp src/Ressource.hpp src/mt19937ar.hpp
src/Ressource.hpp src/Fourmiliere.hpp src/mt19937ar.hpp
No preview for this file type
No preview for this file type
build/main.o: src/main.cpp src/Grille.hpp src/Case.hpp src/Fourmi.hpp \
src/mt19937ar.hpp src/Fourmiliere.hpp src/FourmiRecoltrice.hpp
src/Ressource.hpp src/mt19937ar.hpp src/Fourmiliere.hpp \
src/FourmiRecoltrice.hpp
No preview for this file type
......@@ -23,6 +23,11 @@ unsigned int Fourmi::getIdColonie() {
return idColonie ;
}
void Fourmi::setIdColonie(int i) {
idColonie = i ;
}
bool Fourmi::getAdulte() {
return adulte ;
}
......@@ -47,9 +52,10 @@ unsigned int Fourmi::getCompteur() {
return nbFourmis ;
}
/*
void Fourmi::action() {
}
void Fourmi::deplacement(Grille &) {
}
}*/
......@@ -22,6 +22,7 @@ class Fourmi {
virtual ~Fourmi() ;
unsigned int getAge() ;
void setIdColonie(int );
void setAge( unsigned int ) ;
unsigned int getIdColonie() ;
bool getAdulte() ;
......
......@@ -19,8 +19,8 @@ void FourmiRecoltrice::deplacement(/*Grille & g*/) {
{
if (idCase % colonnes == colonnes - 1)
{
(g.getCase(idCase+1))->getVecteurFourmi().push_back(this) ;
(g.getCase(idCase))->getVecteurFourmi().pop_back() ;
(g.getRessource(idCase+1))->getVecteurFourmi().push_back(this) ;
(g.getRessource(idCase))->getVecteurFourmi().pop_back() ;
idCase = idCase+1 ;
}
break;
......@@ -28,8 +28,8 @@ void FourmiRecoltrice::deplacement(/*Grille & g*/) {
case 1 : {
if ( idCase % colonnes == 0 )
{
(g.getCase(idCase-1))->getVecteurFourmi().push_back(this) ;
(g.getCase(idCase))->getVecteurFourmi().pop_back() ;
(g.getRessource(idCase-1))->getVecteurFourmi().push_back(this) ;
(g.getRessource(idCase))->getVecteurFourmi().pop_back() ;
idCase = idCase-1 ;
}
} ; break ;
......@@ -37,16 +37,16 @@ void FourmiRecoltrice::deplacement(/*Grille & g*/) {
case 2 : {
if ( ! ( idCase >= 0 && idCase <= lignes ) )
{
(g.getCase(idCase + colonnes))->getVecteurFourmi().push_back(this) ;
(g.getCase(idCase))->getVecteurFourmi().pop_back() ;
(g.getRessource(idCase + colonnes))->getVecteurFourmi().push_back(this) ;
(g.getRessource(idCase))->getVecteurFourmi().pop_back() ;
idCase = idCase+colonnes ;
}
} ; break ;
case 3 : {
if ( ! ( idCase >= colonnes * ( lignes - 1 ) && idCase <= colonnes * lignes - 1 ) )
{
(g.getCase(idCase - colonnes))->getVecteurFourmi().push_back(this) ;
(g.getCase(idCase))->getVecteurFourmi().pop_back() ;
(g.getRessource(idCase - colonnes))->getVecteurFourmi().push_back(this) ;
(g.getRessource(idCase))->getVecteurFourmi().pop_back() ;
idCase = idCase - colonnes ;
}
} ; break ;
......
......@@ -20,12 +20,12 @@ void FourmiReine::donneNaissance(unsigned int idCase, Grille & g)
double p = genrand_real2();
if (p < 0.5)
{
(g.getCase(idCase))->getVecteurFourmi().push_back(new FourmiRecoltrice);
(g.getRessource(idCase))->getVecteurFourmi().push_back(new FourmiRecoltrice);
}
else
{
(g.getCase(idCase))->getVecteurFourmi().push_back(new FourmiSoldat);
(g.getRessource(idCase))->getVecteurFourmi().push_back(new FourmiSoldat);
}
}
}
......
......@@ -106,31 +106,31 @@ void FourmiSoldat::deplacement(/*unsigned int idCase, Grille & g/*, FourmiSoldat
{
if (idCase % colonnes == colonnes - 1)
{
//(g.getCase(idCase + 1 )).vecteurFourmi.push_back(fs) ;
//(g.getCase( idCase )).vecteurFourmi.erase(fs) ;
//(g.getRessource(idCase + 1 )).vecteurFourmi.push_back(fs) ;
//(g.getRessource( idCase )).vecteurFourmi.erase(fs) ;
}
break;
}
case 1 : {
if ( idCase % colonnes == 0 )
{
//(g.getCase(idCase - 1 )).vecteurFourmi.push_back(fs) ;
//(g.getCase( idCase )).vecteurFourmi.erase(fs) ;
//(g.getRessource(idCase - 1 )).vecteurFourmi.push_back(fs) ;
//(g.getRessource( idCase )).vecteurFourmi.erase(fs) ;
}
} ; break ;
case 2 : {
if ( ! ( idCase >= 0 && idCase <= lignes ) )
{
//(g.getCase(idCase + colonnes )).vecteurFourmi.push_back(fs) ;
//(g.getCase( idCase )).vecteurFourmi.erase(fs) ;
//(g.getRessource(idCase + colonnes )).vecteurFourmi.push_back(fs) ;
//(g.getRessource( idCase )).vecteurFourmi.erase(fs) ;
}
} ; break ;
case 3 : {
if ( ! ( idCase >= colonnes * ( lignes - 1 ) && idCase <= colonnes * lignes - 1 ) )
{
//(g.getCase(idCase - colonnes )).vecteurFourmi.push_back(fs) ;
//(g.getCase( idCase )).vecteurFourmi.erase(fs) ;
//(g.getRessource(idCase - colonnes )).vecteurFourmi.push_back(fs) ;
//(g.getRessource( idCase )).vecteurFourmi.erase(fs) ;
}
} ; break ;
}*/
......
......@@ -21,23 +21,34 @@ Grille::Grille(unsigned int inNbLignes, unsigned int inNbColonnes)
unsigned int idColonie = 1;
for (unsigned int i = 0; i < nbLignes * nbColonnes; ++i)
{
if (i == idf1 || i == idf2)
/*if (i == idf1 || i == idf2)
{
getCase(i) = new Fourmiliere(100, idColonie);
getRessource(i) = new Fourmiliere(100, idColonie);
idColonie++;
}
else
{
*/
double p = genrand_real2();
/*
if (p < 0.1)
{
getCase(i) = new Ressource;
}
else
{
getCase(i) = new Case;
}
*/
if (p < 0.2)
{
getRessource(i) = new Ressource(2);
}
else
{
getRessource(i) = new Ressource(0);
}
//}
}
}
......@@ -51,15 +62,34 @@ unsigned int Grille::getNbColonnes()
return nbColonnes;
}
Ressource * & Grille::getRessource(unsigned int id)
{
return (vecteurCase[id / nbColonnes])[id % nbColonnes];
}
Ressource * & Grille::getRessource(unsigned int idLigne, unsigned int idColonne)
{
return (vecteurCase[idLigne])[idColonne];
}
/*
Case * & Grille::getCase(unsigned int id)
{
return (vecteurCase[id / nbColonnes])[id % nbColonnes];
}
Case * & Grille::getCase(unsigned int idLigne, unsigned int idColonne)
{
return (vecteurCase[idLigne])[idColonne];
}
*/
void Grille::afficher()
{
......@@ -68,19 +98,26 @@ void Grille::afficher()
{
for (unsigned int j = 0; j < nbColonnes; ++j)
{
if (getCase(i,j)->getVecteurFourmi().size() == 0)
if ( ( i * 20 + j ) == 189 )
{
std::cout << "\033[1;31m F \033[0m" ;
}
else
{
if (getRessource(i,j)->getVecteurFourmi().size() == 0)
{
getCase(i,j)->afficher();
getRessource(i,j)->afficher();
}
else
{
if (getCase(i,j)->getVecteurFourmi()[0]->getIdColonie() == 1)
if (getRessource(i,j)->getVecteurFourmi()[0]->getIdColonie() == 1)
{
std::cout << "\033[1;31m " << getCase(i,j)->getVecteurFourmi().size() << " \033[0m" /*<< std::endl*/;
std::cout << "\033[1;31m " << getRessource(i,j)->getVecteurFourmi().size() << " \033[0m" /*<< std::endl*/;
}
else
{
std::cout << "\033[1;34m " << getCase(i,j)->getVecteurFourmi().size() << " \033[0m" /*<< std::endl*/;
std::cout << "\033[1;34m " << getRessource(i,j)->getVecteurFourmi().size() << " \033[0m" /*<< std::endl*/;
}
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment