Modifications
- Affiche les bordures par défaut - Priorité aux organismes non-animal - Changements commentaires
This commit is contained in:
parent
a8bed59142
commit
e7d3ec324d
2 changed files with 7 additions and 13 deletions
|
@ -19,7 +19,7 @@ struct Evenement {
|
||||||
|
|
||||||
// Affiche un univers, possibilité d'afficher les
|
// Affiche un univers, possibilité d'afficher les
|
||||||
// traits séparant les valeurs du tableaux (par défaut : non)
|
// traits séparant les valeurs du tableaux (par défaut : non)
|
||||||
static void affichage(Univers *, bool = false) noexcept;
|
static void affichage(Univers *, bool = true) noexcept;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct comp_organisme {
|
struct comp_organisme {
|
||||||
|
@ -27,27 +27,29 @@ struct Evenement {
|
||||||
int vitesse_a, vitesse_b;
|
int vitesse_a, vitesse_b;
|
||||||
|
|
||||||
// Si l'organisme est un animal, on utilises sa vitesse pour
|
// Si l'organisme est un animal, on utilises sa vitesse pour
|
||||||
// la comparaison, sinon on dit que la vitesse == - 1
|
// la comparaison, sinon on dit que la vitesse est "infini"
|
||||||
|
// ce qui permet de placer l'organisme au début du vecteur
|
||||||
|
|
||||||
if(Animal * animal_a = dynamic_cast<Animal *>(organisme_a)) {
|
if(Animal * animal_a = dynamic_cast<Animal *>(organisme_a)) {
|
||||||
vitesse_a = animal_a->vitesse;
|
vitesse_a = animal_a->vitesse;
|
||||||
} else {
|
} else {
|
||||||
vitesse_a = -1;
|
vitesse_a = (int)INFINITY;
|
||||||
}
|
}
|
||||||
if(Animal * animal_b = dynamic_cast<Animal *>(organisme_b)) {
|
if(Animal * animal_b = dynamic_cast<Animal *>(organisme_b)) {
|
||||||
vitesse_b = animal_b->vitesse;
|
vitesse_b = animal_b->vitesse;
|
||||||
} else {
|
} else {
|
||||||
vitesse_b = -1;
|
vitesse_b = (int)INFINITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si les vitesses sont égales, alors c'est l'ID
|
// Si les vitesses sont égales, alors c'est l'ID
|
||||||
// (un peu comme la date de création / age) de l'organisme
|
// (un peu comme la date de création / age) de l'organisme
|
||||||
// qui décide car + l'ID est faible, + tôt l'organisme à été
|
// qui décide car + l'ID est faible, + tôt l'organisme à été
|
||||||
// créer, et on part du principe que + on est jeune + on est rapide
|
// créer, et on part du principe que + on est jeune + on est rapide
|
||||||
|
// (on n'utilises pas l'âge car un organisme n'a pas d'âge)
|
||||||
if(vitesse_a == vitesse_b) { // cas rare
|
if(vitesse_a == vitesse_b) { // cas rare
|
||||||
return organisme_a->ID > organisme_b->ID;
|
return organisme_a->ID > organisme_b->ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
return vitesse_a > vitesse_b;
|
return vitesse_a > vitesse_b;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -32,7 +32,6 @@ void Evenement::affichage(Univers * univers, const bool traits) noexcept {
|
||||||
// - un animal sur une case non-animal
|
// - un animal sur une case non-animal
|
||||||
// - l'inverse, un non-animal sur une case animal
|
// - l'inverse, un non-animal sur une case animal
|
||||||
// on utilises dynamic_cast<>() pour savoir le type de l'organisme
|
// on utilises dynamic_cast<>() pour savoir le type de l'organisme
|
||||||
// cf. https://stackoverflow.com/a/27433140/15436737
|
|
||||||
if(dynamic_cast<Animal *>(it)) { // si c'est un animal
|
if(dynamic_cast<Animal *>(it)) { // si c'est un animal
|
||||||
plateau[it->position(univers->ID).first] = it->ID;
|
plateau[it->position(univers->ID).first] = it->ID;
|
||||||
} // sinon ne fait rien
|
} // sinon ne fait rien
|
||||||
|
@ -145,13 +144,6 @@ void Evenement::lancerSimulation(Univers * univers) {
|
||||||
// On trie les organismes en fonction de leur vitesse
|
// On trie les organismes en fonction de leur vitesse
|
||||||
std::sort(univers->m_liste_univers[univers->ID].second.begin(), univers->m_liste_univers[univers->ID].second.end(), comp_organisme());
|
std::sort(univers->m_liste_univers[univers->ID].second.begin(), univers->m_liste_univers[univers->ID].second.end(), comp_organisme());
|
||||||
|
|
||||||
/* for(auto it: univers->m_liste_univers[univers->ID].second) {
|
|
||||||
if(Animal * c = dynamic_cast<Animal *>(it)) {
|
|
||||||
std::cout << it->lettre(it->ID) << " (" << it->ID << ") : " << c->vitesse << std::endl;
|
|
||||||
} else {
|
|
||||||
std::cout << it->lettre(it->ID) << " (" << it->ID << ");" << std::endl;
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue