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
|
||||
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
|
||||
std::pair<int, int> trouveCoordonnees(const int x, const int y) const;
|
||||
|
||||
|
|
|
@ -6,20 +6,26 @@
|
|||
|
||||
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() {
|
||||
|
||||
// Vecteur de toutes les pièeces du jeu
|
||||
std::vector<PieceButin> pieces;
|
||||
std::vector<PieceButin *> pieces;
|
||||
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++) {
|
||||
pieces.push_back(PieceButin(PieceButin::Rouge));
|
||||
pieces.push_back(new PieceButin(PieceButin::Rouge));
|
||||
}
|
||||
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
|
||||
|
@ -32,7 +38,7 @@ void PlateauButin::initialiserPlateau() {
|
|||
int index = 0;
|
||||
for (int i = 0; i < taille; i++) {
|
||||
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 {
|
||||
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
||||
if (piece == nullptr) {
|
||||
delete plateau[x][y];
|
||||
}
|
||||
plateau[x][y] = piece;
|
||||
} else {
|
||||
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 {
|
||||
const float tailleCellule = static_cast<float>(Ecran::largeur()) / taille;
|
||||
|
||||
|
|
Reference in a new issue