fix init + fonction qui recupere une piece
This commit is contained in:
parent
97cae6fab8
commit
8d3b8a7668
3 changed files with 26 additions and 6 deletions
|
@ -27,6 +27,9 @@ public:
|
||||||
// Fonction pour modifier le plateau
|
// Fonction pour modifier le plateau
|
||||||
void modifierPlateau(const int x, const int y, Piece *piece) const;
|
void modifierPlateau(const int x, const int y, Piece *piece) const;
|
||||||
|
|
||||||
|
// Renvoie une pièce à une position
|
||||||
|
Piece *getPiece(const int x, const int y) const;
|
||||||
|
|
||||||
// Prend des coordonnées écran et renvoie des coordonnées jeu
|
// Prend des coordonnées écran et renvoie des coordonnées jeu
|
||||||
std::pair<int, int> trouveCoordonnees(const int x, const int y) const;
|
std::pair<int, int> trouveCoordonnees(const int x, const int y) const;
|
||||||
|
|
||||||
|
|
|
@ -6,20 +6,26 @@
|
||||||
|
|
||||||
PlateauButin::PlateauButin() : Plateau(8) {}
|
PlateauButin::PlateauButin() : Plateau(8) {}
|
||||||
|
|
||||||
PlateauButin::~PlateauButin() {}
|
PlateauButin::~PlateauButin() {
|
||||||
|
for (int i = 0; i < taille; i++) {
|
||||||
|
for (int j = 0; j < taille; j++) {
|
||||||
|
delete plateau[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PlateauButin::initialiserPlateau() {
|
void PlateauButin::initialiserPlateau() {
|
||||||
|
|
||||||
// Vecteur de toutes les pièeces du jeu
|
// Vecteur de toutes les pièeces du jeu
|
||||||
std::vector<PieceButin> pieces;
|
std::vector<PieceButin *> pieces;
|
||||||
for (int i = 0; i < 34; i++) {
|
for (int i = 0; i < 34; i++) {
|
||||||
pieces.push_back(PieceButin(PieceButin::Jaune));
|
pieces.push_back(new PieceButin(PieceButin::Jaune));
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
pieces.push_back(PieceButin(PieceButin::Rouge));
|
pieces.push_back(new PieceButin(PieceButin::Rouge));
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
pieces.push_back(PieceButin(PieceButin::Noire));
|
pieces.push_back(new PieceButin(PieceButin::Noire));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mélange le vecteur de pièces (j'ai jamais utilisé ça pour randomiser faudra
|
// Mélange le vecteur de pièces (j'ai jamais utilisé ça pour randomiser faudra
|
||||||
|
@ -32,7 +38,7 @@ void PlateauButin::initialiserPlateau() {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (int i = 0; i < taille; i++) {
|
for (int i = 0; i < taille; i++) {
|
||||||
for (int j = 0; j < taille; j++) {
|
for (int j = 0; j < taille; j++) {
|
||||||
plateau[i][j] = &pieces[static_cast<uint>(index++)];
|
plateau[i][j] = pieces[static_cast<uint>(index++)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,12 +66,23 @@ void Plateau::afficherPlateau(std::ostream &out, const bool d) const {
|
||||||
|
|
||||||
void Plateau::modifierPlateau(const int x, const int y, Piece *piece) const {
|
void Plateau::modifierPlateau(const int x, const int y, Piece *piece) const {
|
||||||
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
||||||
|
if (piece == nullptr) {
|
||||||
|
delete plateau[x][y];
|
||||||
|
}
|
||||||
plateau[x][y] = piece;
|
plateau[x][y] = piece;
|
||||||
} else {
|
} else {
|
||||||
throw std::invalid_argument("Coordonnées invalides");
|
throw std::invalid_argument("Coordonnées invalides");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Piece *Plateau::getPiece(const int x, const int y) const {
|
||||||
|
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
||||||
|
return plateau[x][y];
|
||||||
|
} else {
|
||||||
|
throw std::invalid_argument("Coordonnées invalides");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::pair<int, int> Plateau::trouveCoordonnees(const int x, const int y) const {
|
std::pair<int, int> Plateau::trouveCoordonnees(const int x, const int y) const {
|
||||||
const float tailleCellule = static_cast<float>(Ecran::largeur()) / taille;
|
const float tailleCellule = static_cast<float>(Ecran::largeur()) / taille;
|
||||||
|
|
||||||
|
|
Reference in a new issue