affichage damier
This commit is contained in:
parent
fbfdec71e1
commit
e8e52411ff
5 changed files with 51 additions and 20 deletions
|
@ -3,11 +3,10 @@
|
||||||
#include <SFML/Graphics.hpp>
|
#include <SFML/Graphics.hpp>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
class Ecran {
|
struct Ecran {
|
||||||
// Fenêtre
|
// Fenêtre
|
||||||
sf::RenderWindow window;
|
static sf::RenderWindow window;
|
||||||
|
|
||||||
public:
|
|
||||||
Ecran(const uint width = 800, const uint height = 800,
|
Ecran(const uint width = 800, const uint height = 800,
|
||||||
const std::string name = "Projet"); // constructor
|
const std::string name = "Projet"); // constructor
|
||||||
~Ecran(); // destructor
|
~Ecran(); // destructor
|
||||||
|
|
|
@ -15,16 +15,13 @@ public:
|
||||||
Plateau(int taille); // constructor
|
Plateau(int taille); // constructor
|
||||||
virtual ~Plateau(); // destructor
|
virtual ~Plateau(); // destructor
|
||||||
|
|
||||||
Plateau(const Plateau &); // copy constructor
|
|
||||||
const Plateau &operator=(const Plateau &); // copy assignement
|
|
||||||
|
|
||||||
// Fonction pour initialiser le plateau (selon le jeu)
|
// Fonction pour initialiser le plateau (selon le jeu)
|
||||||
// Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de
|
// Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de
|
||||||
// comment initialiser la fonction autrement
|
// comment initialiser la fonction autrement
|
||||||
virtual void initialiserPlateau(Joueur &j1, Joueur &j2);
|
virtual void initialiserPlateau(Joueur &j1, Joueur &j2);
|
||||||
|
|
||||||
// Fonction pour afficher le plateau (selon le jeu)
|
// Fonction pour afficher le plateau (selon le jeu)
|
||||||
void afficherPlateau();
|
void afficherPlateau(const bool debug = false);
|
||||||
|
|
||||||
// Fonction pour modifier le plateau
|
// Fonction pour modifier le plateau
|
||||||
void modifierPlateau(int x, int y, Piece *piece);
|
void modifierPlateau(int x, int y, Piece *piece);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#include "../includes/Ecran.hpp"
|
#include "../includes/Ecran.hpp"
|
||||||
|
|
||||||
|
sf::RenderWindow Ecran::window;
|
||||||
|
|
||||||
Ecran::Ecran(const uint w, const uint h, const std::string n) {
|
Ecran::Ecran(const uint w, const uint h, const std::string n) {
|
||||||
// Création de la fenêtre SFML
|
// Création de la fenêtre SFML
|
||||||
window.create(sf::VideoMode(w, h), n);
|
window.create(sf::VideoMode(w, h), n);
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#include "../includes/Plateau.hpp"
|
#include "../includes/Plateau.hpp"
|
||||||
|
#include "../includes/Ecran.hpp"
|
||||||
#include "../includes/PieceDames.hpp"
|
#include "../includes/PieceDames.hpp"
|
||||||
|
|
||||||
Plateau::Plateau(int t) {
|
Plateau::Plateau(int t) : taille(t) {
|
||||||
// Création du plateau vide
|
// Création du plateau vide
|
||||||
plateau = new Piece **[t];
|
plateau = new Piece **[t];
|
||||||
for (int i = 0; i < t; i++) {
|
for (int i = 0; i < t; i++) {
|
||||||
|
@ -19,16 +20,6 @@ Plateau::~Plateau() {
|
||||||
delete[] plateau;
|
delete[] plateau;
|
||||||
}
|
}
|
||||||
|
|
||||||
Plateau::Plateau(const Plateau &) {}
|
|
||||||
|
|
||||||
const Plateau &Plateau::operator=(const Plateau &src) {
|
|
||||||
if (this == &src) {
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Plateau::initialiserPlateau(Joueur &j1, Joueur &j2) {
|
void Plateau::initialiserPlateau(Joueur &j1, Joueur &j2) {
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
for (int j = 0; j < 10; j++) {
|
for (int j = 0; j < 10; j++) {
|
||||||
|
@ -49,7 +40,47 @@ void Plateau::initialiserPlateau(Joueur &j1, Joueur &j2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plateau::afficherPlateau() {}
|
void Plateau::afficherPlateau(const bool d) {
|
||||||
|
float taille_cellule = static_cast<float>(Ecran::window.getSize().x) / taille;
|
||||||
|
|
||||||
|
// Cellule
|
||||||
|
sf::RectangleShape cell(sf::Vector2f(taille_cellule, taille_cellule));
|
||||||
|
|
||||||
|
for (int i = 0; i < taille; i++) {
|
||||||
|
for (int j = 0; j < taille; j++) {
|
||||||
|
float x = i * taille_cellule;
|
||||||
|
float y = j * taille_cellule;
|
||||||
|
|
||||||
|
// 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) {
|
void Plateau::modifierPlateau(int x, int y, Piece *piece) {
|
||||||
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
if (x >= 0 && x < taille && y >= 0 && y < taille) {
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
#include "../includes/Ecran.hpp"
|
#include "../includes/Ecran.hpp"
|
||||||
|
#include "../includes/Plateau.hpp"
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
Plateau p(10);
|
||||||
Ecran e;
|
Ecran e;
|
||||||
e.afficher();
|
e.afficher(std::bind(&Plateau::afficherPlateau, &p, true));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue