des idées
This commit is contained in:
parent
828c912aa4
commit
b79b4b8131
3 changed files with 26 additions and 9 deletions
|
@ -31,8 +31,8 @@ public:
|
|||
// Si piece = nullptr alors on retire la pièce du plateau
|
||||
void modifierPlateau(const int x, const int y, Piece *piece) const;
|
||||
|
||||
// Fonction pour bouger une pièce
|
||||
void moveSelection(const int x, const int y);
|
||||
// Fonction pour bouger une pièce, renvoie les anciennes coordonnées
|
||||
std::pair<int, int> moveSelection(const int x, const int y);
|
||||
|
||||
// Renvoie une pièce à une position donnnée
|
||||
Piece *getPiece(const int x, const int y) const;
|
||||
|
|
|
@ -106,21 +106,32 @@ void Butin::event(const int x, const int y) {
|
|||
break;
|
||||
}
|
||||
case EnJeu: {
|
||||
if (!true) {
|
||||
// TODO: Si plus aucun coup n'est possible
|
||||
etape = Fini;
|
||||
Ecran::printMessage("Bravo !");
|
||||
}
|
||||
|
||||
// TODO
|
||||
Piece *p = getPiece(posCurseur.first, posCurseur.second);
|
||||
plateau.modifierSelection(posCurseur.first, posCurseur.second);
|
||||
if (p == nullptr) {
|
||||
// TODO - Si le coup est faisable
|
||||
// TODO - Si le coup est faisable (définir dans PlateauButin ?)
|
||||
if (true) {
|
||||
plateau.moveSelection(posCurseur.first, posCurseur.second);
|
||||
std::pair<int, int> from =
|
||||
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;
|
||||
}
|
||||
case Fini: {
|
||||
// TODO: Afficher le nom du gagnant
|
||||
Ecran::printMessage("Bravo !");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
// 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
|
||||
plateau[selection->x][selection->y] = nullptr;
|
||||
plateau[ancienneCoordonnees.first][ancienneCoordonnees.second] = nullptr;
|
||||
|
||||
// Déplace la pièce sur le plateau
|
||||
modifierPlateau(x, y, selection);
|
||||
|
@ -155,4 +159,6 @@ void Plateau::moveSelection(const int x, const int y) {
|
|||
|
||||
// Déselectionne la pièce
|
||||
modifierSelection(x, y);
|
||||
|
||||
return ancienneCoordonnees;
|
||||
}
|
||||
|
|
Reference in a new issue