This commit is contained in:
Mylloon 2024-01-08 00:10:34 +01:00
parent 00bf91b25c
commit 965e22a7b6
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -281,32 +281,36 @@ void Safari::changerJoueurCourant() {
} }
} }
// TODO
int Safari::zoneDeplacementOk() const { int Safari::zoneDeplacementOk() const {
// Compte le nombre d'animaux qui ont encore des zones valides // Compte le nombre d'animaux qui ont encore des zones valides
// Zone valide = animal possède une zone de déplacement de mini 8 cases // Zone valide = animal possède une zone de déplacement de mini 8 cases
int nbAnimaux = 0; int nbAnimaux = 0;
for (Piece *animal : joueurCourant->getPieces()) { for (Piece *animal : joueurCourant->getPieces()) {
Position position = animal->getPos(); Position position = animal->getPos();
// Vérifier la zone de déplacement valide // Nombre de cases sur lesquels l'animal peut se rendre
int casesDisponibles = 0; int casesDisponibles = 0;
const int taille = plateau.getTaille();
bool skip = false; bool skip = false;
const int taille = plateau.getTaille();
for (int i = 0; i < taille && !skip; ++i) { for (int i = 0; i < taille && !skip; ++i) {
for (int j = 0; j < taille && !skip; ++j) { for (int j = 0; j < taille && !skip; ++j) {
if (plateau.getPiece(i, j) == nullptr) { // Déplacement sur les pièces vide uniquement
if (plateau.deplacementValideCoor(position.first, position.second, i, if (plateau.getPiece(i, j) != nullptr) {
j)) { continue;
++casesDisponibles; }
}
if (casesDisponibles >= 8) { // Case dispo si on peut se déplacer dessus
++nbAnimaux; if (plateau.deplacementValideCoor(position.first, position.second, i,
skip = true; j)) {
} ++casesDisponibles;
}
// Si 8 cases sont dispo on peut arrêter la recherche
if (casesDisponibles >= 8) {
++nbAnimaux;
skip = true;
} }
} }
} }