diff --git a/src/Safari/Safari.cpp b/src/Safari/Safari.cpp index 6864794..3707cad 100644 --- a/src/Safari/Safari.cpp +++ b/src/Safari/Safari.cpp @@ -182,36 +182,29 @@ void Safari::event(const int x, const int y) { case EnJeu: { const Piece *p = getPiece(posCurseur.first, posCurseur.second); + bool justChanged = false; - // Si la case cliquée est vide - if (p == nullptr) { - bool justChanged = false; - - // Déplacer un animal - if (!deplacerAnimal) { - // TODO: Vérifier que le déplacement est correct + // Déplacer un animal + if (!deplacerAnimal && p == nullptr) { + // TODO: Vérifier que le déplacement est correct + if (true) { plateau.moveSelection(posCurseur.first, posCurseur.second); justChanged = true; deplacerAnimal = true; Ecran::printMessage(msgTonTour()); } + } - // Poser une barrière - if (!placerBarriere && !justChanged) { - // TODO - } + // Poser une barrière + if (!placerBarriere && !justChanged) { + // TODO + // J'ai comme idée de cliquer sur 2 cases et de placer la barrière entre + // les 2 cases choisies + // Prendre en compte qu'il faut rajouter un marqueur quand on clique sur + // une case vide + } - if (deplacerAnimal && placerBarriere) { - // Le joueur a fini son tour - // Réinitialise les variables - deplacerAnimal = false; - placerBarriere = false; - - // Donne la main au joueur suivant - changerJoueurCourant(); - Ecran::printMessage(msgTonTour()); - } - } else { + if (p != nullptr) { // Vérifie que la pièce est à nous if (getPiece(posCurseur.first, posCurseur.second)->getCategory() == getPiece(joueurCourant->getPieces().at(0))->getCategory()) { @@ -219,6 +212,17 @@ void Safari::event(const int x, const int y) { plateau.modifierSelection(posCurseur.first, posCurseur.second); } } + + if (deplacerAnimal && placerBarriere) { + // Le joueur a fini son tour + // Réinitialise les variables + deplacerAnimal = false; + placerBarriere = false; + + // Donne la main au joueur suivant + changerJoueurCourant(); + Ecran::printMessage(msgTonTour()); + } break; } case Fini: {