1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#ifndef _PLATEAU
#define _PLATEAU
// valeur d'une dame
#define VD 2
#include "Coup.h"
#include <iostream>
#include <vector>
/*Stockage du plateau */
class Plateau {
public:
// Constructeur : Mise en place de la configuration initiale
Plateau();
// Constructeur de recopie
Plateau(const Plateau& p);
// Construction du plateau a partir d'un fichier
Plateau(char* name);
// écriture de la position courante dans un fichier
void writeToFile(char* name);
// accès à une case du tableau représentant le plateau
short operator[](int i) const {
return damier[i];
}
// accès à la valeur du jeu
int getVal() const {
return val;
}
// avancée d'un coup sans supprimer le pion du plateau dans le cas d'une prise
void ghostMove(const Coup& cp);
// recul d'un coup (memes conditions que ci-dessus)
void ghostUndo();
// avancée d'un coup
void move(const Coup& cp);
// recul d'un coup
void undo();
// ajoute les pions pris dans le cas d'une entrée de coup
Coup decoreCoup(Coup cp);
// indique si une position est dynamique (ie: pions en prise) ou statique
bool isStatic(int nbCoups);
// évaluation statique d'une position
int evalPos();
// stockage de la partie dans un fichier
void stockePartie(char* name);
// lit des coups dans un fichier en les executant au fur et a mesure
void jouePartie(char* name);
// destructeur
~Plateau() {
delete []damier; // PROVOQUE UNE SEGFAULT (??? pkoi ???)
}
private:
// Stockage du plateau :
short damier[50];
// vecteur de coups representant la partie via les differents coups joues
std::vector<Coup> partie;
// variable globale memorisant la valeur du jeu, dames=VD et pions=1 au début
int val; // + si avantage blanc, - si avantage noir
};
// Affichage du plateau
extern std::ostream& operator<<(std::ostream& o, const Plateau& p);
#endif |
Partager