#include "../includes/Plateau.hpp" #include "../includes/Dames/PieceDames.hpp" #include "../includes/Ecran.hpp" Plateau::Plateau(int t) : plateau(new Piece **[t]), taille(t) { // Création du plateau vide for (int i = 0; i < t; i++) { plateau[i] = new Piece *[t]; for (int j = 0; j < t; j++) { plateau[i][j] = nullptr; } } } Plateau::~Plateau() { for (int i = 0; i < taille; i++) { delete[] plateau[i]; } delete[] plateau; } void Plateau::afficherPlateau(const bool d) { const float tailleCellule = static_cast(Ecran::window.getSize().x) / taille; // Adapte la vue pour le redimensionnement const float tailleFenetre = taille * tailleCellule; Ecran::window.setView( sf::View(sf::FloatRect(0, 0, tailleFenetre, tailleFenetre))); // Cellule sf::RectangleShape cell(sf::Vector2f(tailleCellule, tailleCellule)); for (int i = 0; i < taille; i++) { for (int j = 0; j < taille; j++) { const float x = i * tailleCellule; const float y = j * tailleCellule; // Position de la cellule cell.setPosition(x, y); if (d) { std::cout << "(" << x << ", " << y; } // Alternation des couleurs if ((i + j) % 2 == 0) { cell.setFillColor(sf::Color::White); if (d) { std::cout << ", B), "; } } else { cell.setFillColor(sf::Color::Black); if (d) { std::cout << ", N), "; } } // Dessine la cellule Ecran::window.draw(cell); } if (d) { std::cout << "\n"; } } if (d) { std::cout << "---\n"; } } void Plateau::modifierPlateau(int x, int y, Piece *piece) { if (x >= 0 && x < taille && y >= 0 && y < taille) { plateau[x][y] = piece; } else { throw std::invalid_argument("Coordonnées invalides"); } }