plateau mis droit (en esperant que ça bug pas apres.....)

This commit is contained in:
Emma 2024-01-11 22:48:24 +01:00
parent a00d901671
commit ba47996c31
3 changed files with 20 additions and 22 deletions

View file

@ -16,8 +16,6 @@ class Dames : private Jeu {
// Etape du jeu, pour savoir où on en est // Etape du jeu, pour savoir où on en est
enum Etape { enum Etape {
ChoixJ1 = 0,
ChoixJ2,
EnJeu, EnJeu,
Fini, Fini,
}; };

View file

@ -56,10 +56,6 @@ void Dames::event(const int x, const int y) {
<< posCurseur.first << ", " << posCurseur.second << ")\n"; << posCurseur.first << ", " << posCurseur.second << ")\n";
switch (etape) { switch (etape) {
case ChoixJ1: {
}
case ChoixJ2: {
}
case EnJeu: { case EnJeu: {
const Piece *p = getPiece(posCurseur.first, posCurseur.second); const Piece *p = getPiece(posCurseur.first, posCurseur.second);
if (getPiece(posCurseur.first, posCurseur.second)->getCategory() == 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 // On sélectionne la pièce
plateau.modifierSelection(posCurseur.first, posCurseur.second); plateau.modifierSelection(posCurseur.first, posCurseur.second);
} }
// Si une prise est possible, le joueur est obligé d'en faire une
if (prisePossible(*joueurCourant)) { if (prisePossible(*joueurCourant)) {
Ecran::printMessage("Vous devez forcément faire une prise."); 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 break;
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());
}
}
} }
case Fini: { case Fini: {
break; break;

View file

@ -4,8 +4,8 @@
PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2) PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2)
: Plateau(10, sf::Color(255, 205, 160), sf::Color(210, 140, 70)), : Plateau(10, sf::Color(255, 205, 160), sf::Color(210, 140, 70)),
j1(&joueur1), j2(&joueur2) { j1(&joueur1), j2(&joueur2) {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) { for (int j = 0; j < 4; j++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
plateau[i][j] = new PieceDames(PieceDames::Noire, i, j); plateau[i][j] = new PieceDames(PieceDames::Noire, i, j);
j1->ajoutPiece(plateau[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 i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) { for (int j = 6; j < 10; j++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
plateau[i][j] = new PieceDames(PieceDames::Blanche, i, j); plateau[i][j] = new PieceDames(PieceDames::Blanche, i, j);
j2->ajoutPiece(plateau[i][j]); j2->ajoutPiece(plateau[i][j]);