des idées

This commit is contained in:
Mylloon 2023-12-29 02:19:06 +01:00
parent 828c912aa4
commit b79b4b8131
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 26 additions and 9 deletions

View file

@ -31,8 +31,8 @@ public:
// Si piece = nullptr alors on retire la pièce du plateau // Si piece = nullptr alors on retire la pièce du plateau
void modifierPlateau(const int x, const int y, Piece *piece) const; void modifierPlateau(const int x, const int y, Piece *piece) const;
// Fonction pour bouger une pièce // Fonction pour bouger une pièce, renvoie les anciennes coordonnées
void moveSelection(const int x, const int y); std::pair<int, int> moveSelection(const int x, const int y);
// Renvoie une pièce à une position donnnée // Renvoie une pièce à une position donnnée
Piece *getPiece(const int x, const int y) const; Piece *getPiece(const int x, const int y) const;

View file

@ -106,21 +106,32 @@ void Butin::event(const int x, const int y) {
break; break;
} }
case EnJeu: { case EnJeu: {
if (!true) {
// TODO: Si plus aucun coup n'est possible
etape = Fini;
Ecran::printMessage("Bravo !");
}
// TODO // TODO
Piece *p = getPiece(posCurseur.first, posCurseur.second); Piece *p = getPiece(posCurseur.first, posCurseur.second);
plateau.modifierSelection(posCurseur.first, posCurseur.second); plateau.modifierSelection(posCurseur.first, posCurseur.second);
if (p == nullptr) { if (p == nullptr) {
// TODO - Si le coup est faisable // TODO - Si le coup est faisable (définir dans PlateauButin ?)
if (true) { if (true) {
std::pair<int, int> from =
plateau.moveSelection(posCurseur.first, posCurseur.second); plateau.moveSelection(posCurseur.first, posCurseur.second);
// Coordonnées de départ : (from.first , from.second)
// Coordonnées d'arrivée : (posCurseur.first, posCurseur.second)
// TODO: Récupérer la/les pièce/s entre ces 2 coordonnées (définir dans
// PlateauButin ?)
// et ajouter les points aux joueurs
} }
} }
break; break;
} }
case Fini: { case Fini: {
// TODO: Afficher le nom du gagnant
Ecran::printMessage("Bravo !");
break; break;
} }
} }

View file

@ -138,14 +138,18 @@ void Plateau::modifierSelection(const int x, const int y) {
} }
} }
void Plateau::moveSelection(const int x, const int y) { std::pair<int, int> Plateau::moveSelection(const int x, const int y) {
if (selection == nullptr) { if (selection == nullptr) {
// Ne fais rien si on a rien a bouger // Ne fais rien si on a rien a bouger
return; return std::make_pair(-1, -1);
} }
// Récupère les coordonnées
std::pair<int, int> ancienneCoordonnees =
std::make_pair(selection->x, selection->y);
// Retire la pièce de là où elle est pour le plateau // Retire la pièce de là où elle est pour le plateau
plateau[selection->x][selection->y] = nullptr; plateau[ancienneCoordonnees.first][ancienneCoordonnees.second] = nullptr;
// Déplace la pièce sur le plateau // Déplace la pièce sur le plateau
modifierPlateau(x, y, selection); modifierPlateau(x, y, selection);
@ -155,4 +159,6 @@ void Plateau::moveSelection(const int x, const int y) {
// Déselectionne la pièce // Déselectionne la pièce
modifierSelection(x, y); modifierSelection(x, y);
return ancienneCoordonnees;
} }