comments
This commit is contained in:
parent
00bf91b25c
commit
965e22a7b6
1 changed files with 17 additions and 13 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue