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
|
// 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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue