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 {
// 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
int nbAnimaux = 0;
for (Piece *animal : joueurCourant->getPieces()) {
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;
const int taille = plateau.getTaille();
bool skip = false;
const int taille = plateau.getTaille();
for (int i = 0; i < taille && !skip; ++i) {
for (int j = 0; j < taille && !skip; ++j) {
if (plateau.getPiece(i, j) == nullptr) {
if (plateau.deplacementValideCoor(position.first, position.second, i,
j)) {
++casesDisponibles;
}
if (casesDisponibles >= 8) {
++nbAnimaux;
skip = true;
}
// Déplacement sur les pièces vide uniquement
if (plateau.getPiece(i, j) != nullptr) {
continue;
}
// Case dispo si on peut se déplacer dessus
if (plateau.deplacementValideCoor(position.first, position.second, i,
j)) {
++casesDisponibles;
}
// Si 8 cases sont dispo on peut arrêter la recherche
if (casesDisponibles >= 8) {
++nbAnimaux;
skip = true;
}
}
}