diff --git a/includes/Dames/Dames.hpp b/includes/Dames/Dames.hpp index e74c0cc..cfc561e 100644 --- a/includes/Dames/Dames.hpp +++ b/includes/Dames/Dames.hpp @@ -16,8 +16,6 @@ class Dames : private Jeu { // Etape du jeu, pour savoir où on en est enum Etape { - ChoixJ1 = 0, - ChoixJ2, EnJeu, Fini, }; diff --git a/src/Dames/Dames.cpp b/src/Dames/Dames.cpp index d3432c0..458a48e 100644 --- a/src/Dames/Dames.cpp +++ b/src/Dames/Dames.cpp @@ -56,10 +56,6 @@ void Dames::event(const int x, const int y) { << posCurseur.first << ", " << posCurseur.second << ")\n"; switch (etape) { - case ChoixJ1: { - } - case ChoixJ2: { - } case EnJeu: { const Piece *p = getPiece(posCurseur.first, posCurseur.second); if (getPiece(posCurseur.first, posCurseur.second)->getCategory() == @@ -67,21 +63,25 @@ void Dames::event(const int x, const int y) { // On sélectionne la pièce plateau.modifierSelection(posCurseur.first, posCurseur.second); } + // Si une prise est possible, le joueur est obligé d'en faire une if (prisePossible(*joueurCourant)) { Ecran::printMessage("Vous devez forcément faire une prise."); + // Quand il ne peux pas faire de prise, il déplace une de ses pieces + }else{ + // Vérifier que le déplacement est correct + if (plateau.deplacementValide(posCurseur.first, posCurseur.second)) { + // Test si le déplacement est possible pour un pions : en diagonal en direction de l'autre joueur + if((joueurCourant==&joueur1 && posCurseur.first==p->getPos().first+1) || + (joueurCourant==&joueur2 && posCurseur.first==p->getPos().first-1) && + (posCurseur.second == p->getPos().second+1 || posCurseur.second == p->getPos().second-1)){ + plateau.moveSelection(posCurseur.first, posCurseur.second); + // Donne la main au joueur suivant + changerJoueurCourant(); + Ecran::printMessage(msgTonTour()); + } + } } - // Vérifier que le déplacement est correct - if (plateau.deplacementValide(posCurseur.first, posCurseur.second)) { - // Test si le déplacement est possible pour un pions : en diagonal en direction de l'autre joueur - if((joueurCourant==&joueur1 && posCurseur.first==p->getPos().first+1) || - (joueurCourant==&joueur2 && posCurseur.first==p->getPos().first-1) && - (posCurseur.second == p->getPos().second+1 || posCurseur.second == p->getPos().second-1)){ - plateau.moveSelection(posCurseur.first, posCurseur.second); - // Donne la main au joueur suivant - changerJoueurCourant(); - Ecran::printMessage(msgTonTour()); - } - } + break; } case Fini: { break; diff --git a/src/Dames/PlateauDames.cpp b/src/Dames/PlateauDames.cpp index 35fd9d4..1a15c21 100644 --- a/src/Dames/PlateauDames.cpp +++ b/src/Dames/PlateauDames.cpp @@ -4,8 +4,8 @@ PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2) : Plateau(10, sf::Color(255, 205, 160), sf::Color(210, 140, 70)), j1(&joueur1), j2(&joueur2) { - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 10; j++) { + for (int i = 0; i < 10; i++) { + for (int j = 0; j < 4; j++) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { plateau[i][j] = new PieceDames(PieceDames::Noire, i, j); j1->ajoutPiece(plateau[i][j]); @@ -13,8 +13,8 @@ PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2) } } - for (int i = 6; i < 10; i++) { - for (int j = 0; j < 10; j++) { + for (int i = 0; i < 10; i++) { + for (int j = 6; j < 10; j++) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { plateau[i][j] = new PieceDames(PieceDames::Blanche, i, j); j2->ajoutPiece(plateau[i][j]);