From 77b918ede62615e2468a2b8a471864b08649deec Mon Sep 17 00:00:00 2001 From: Mylloon Date: Thu, 11 Jan 2024 23:01:41 +0100 Subject: [PATCH] fmt and piece colors --- includes/Dames/Dames.hpp | 2 +- src/Dames/Dames.cpp | 119 ++++++++++++++++++++++++--------------- src/Dames/PieceDames.cpp | 12 +++- 3 files changed, 85 insertions(+), 48 deletions(-) diff --git a/includes/Dames/Dames.hpp b/includes/Dames/Dames.hpp index cfc561e..a9ca4a2 100644 --- a/includes/Dames/Dames.hpp +++ b/includes/Dames/Dames.hpp @@ -16,7 +16,7 @@ class Dames : private Jeu { // Etape du jeu, pour savoir où on en est enum Etape { - EnJeu, + EnJeu = 0, Fini, }; diff --git a/src/Dames/Dames.cpp b/src/Dames/Dames.cpp index 458a48e..bc46d37 100644 --- a/src/Dames/Dames.cpp +++ b/src/Dames/Dames.cpp @@ -11,6 +11,7 @@ Dames::Dames(Joueur &j1, Joueur &j2) } else { joueurCourant = &j2; } + etape = EnJeu; std::cout << "Joueur " << joueurCourant->getNum() << " jouera avec les pièces blanches et commencera la partie." @@ -66,19 +67,23 @@ void Dames::event(const int x, const int y) { // 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{ + // 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)){ + // 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()); - } + // Donne la main au joueur suivant + changerJoueurCourant(); + Ecran::printMessage(msgTonTour()); + } } } break; @@ -123,50 +128,74 @@ bool Dames::prisePossible(Joueur &joueur) const { if (!p) { throw std::runtime_error("Cette pièce est.. étrange."); } - // On regarde si une prise est possible pour chaque coté de la piece - if(pos.first>1){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first - 1, pos.second)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) + // On regarde si une prise est possible pour chaque coté de la piece + if (pos.first > 1) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first - 1, pos.second)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { return true; + } } - if(pos.first>1 && pos.second>1){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first - 1, pos.second - 1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) + if (pos.first > 1 && pos.second > 1) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first - 1, pos.second - 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { return true; + } } - if(pos.first>1 && pos.second<8){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first - 1, pos.second + 1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) - return true; - } - if(pos.second>1){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first, pos.second -1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) + if (pos.first > 1 && pos.second < 8) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first - 1, pos.second + 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { return true; + } } - if(pos.second<8){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first, pos.second + 1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) - return true; - } - if(pos.first<8 && pos.second>1){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first + 1, pos.second - 1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) + if (pos.second > 1) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first, pos.second - 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { return true; + } } - if(pos.first<8 && pos.second<8){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first + 1, pos.second + 1)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) - return true; + if (pos.second < 8) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first, pos.second + 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { + return true; + } + } + if (pos.first < 8 && pos.second > 1) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first + 1, pos.second - 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { + return true; + } + } + if (pos.first < 8 && pos.second < 8) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first + 1, pos.second + 1)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { + return true; + } + } + if (pos.first < 8) { + pieceAPrendre = dynamic_cast( + plateau.getPiece(pos.first + 1, pos.second)); + if (pieceAPrendre != nullptr && + pieceAPrendre->getCategory() != p->getCategory()) { + return true; + } + } + // Cas où la piece est une dame... + if (!p->getDame()) { } - if(pos.first<8){ - pieceAPrendre = dynamic_cast(plateau.getPiece(pos.first + 1, pos.second)); - if (pieceAPrendre != nullptr && pieceAPrendre->getCategory()!=p->getCategory()) - return true; - } - // Cas où la piece est une dame... - if (!p->getDame()) { - } } return false; } diff --git a/src/Dames/PieceDames.cpp b/src/Dames/PieceDames.cpp index d0aa525..2fe704d 100644 --- a/src/Dames/PieceDames.cpp +++ b/src/Dames/PieceDames.cpp @@ -32,6 +32,14 @@ const std::string PieceDames::to_string(const enum Categorie cat) const { } const sf::Color PieceDames::getScreenColor() const { - // TODO - return sf::Color::White; + switch (_category) { + case Blanche: + return sf::Color::White; + case Noire: + return sf::Color::Black; + + default: + // Ne devrait pas arriver + return sf::Color::White; + } }