Jeux d'echec
Programmation d'un jeux d'echec
 All Classes Files Functions Enumerations Enumerator
terrain.h
Go to the documentation of this file.
1 #ifndef TERRAIN_H
2 #define TERRAIN_H
3 
4 #include <QWidget>
5 #include <QLabel>
6 #include <QGridLayout>
7 #include <QPixmap>
8 #include <QFile>
9 #include "Definement.h"
10 #include "deplacements.h"
11 
12 class MainWindow;
13 #include "mainwindow.h"
14 class IA;
15 #include "ia.h"
16 
17 class case_terrain;
18 #include "case_terrain.h"
19 
20 
21 
22 class terrain : public QWidget
23 {
24  Q_OBJECT
25 public:
26  explicit terrain(QWidget *parent = 0);
27  ~terrain();
28  void initialisation();
29 
30 
31  void setIA(bool actif ,int dificulter = 2);
32  case_terrain * getCaseTerrain(int x,int y);
33  void faireJouerIA();
34  void deselectAllCaseTerain();
35  void rafraichirCase(int x,int y);
36  unsigned int getNbTourMax();
37  void setNbTourMax(unsigned int nb);
38  bool getIAActiver();
39  int getIADifficulter();
40  void loadFile(QString fichier);
41  void saveToFile(QString fichier);
42 
43 
44 public slots:
45  void reinitialisation();
46  void caseCliquer(int x, int y);
47 
48 private:
49  MainWindow *m_interface;
50  unsigned int m_nbTourMax;
51  unsigned int m_tourno;
52  bool m_joueurIA;
53  piece m_matricePiece[8][8]; // matrice du terrain permet de savoir ou sont les pions facilement
54  int m_matriceGroupe[8][8]; // permet de connaitre le groupe d'une piece soit 1 pour noir, 2 pour blanc
55  int m_matriceDeplacement[8][8]; // permet de savoir si une piece a bouger ou pas, toute les pieces a 1 n'ont pas ete bouger sinon 0
56  int m_joueurQuiJoue;
57 
58  QVector<QPoint> m_pointSelectionner; // permet de donner les coordonees des futurs cibles
59  QPoint m_origineSelectionner; // permet de stocker case selectionner
60  QVector<QPoint> *m_coupPrecedent;
61 
62  case_terrain echiquier[8][8]; // cases effectives du terrain sur lequel appliquer le chargement d'image
63  IA *m_IA;
64 
65  // token permetant a l'utilisateur de selectionner que les pieces qui permetent de sortir de l'echec
66  QVector<QPoint> CaseDeplacementPossible;
67 
68  QPoint m_Posi_Rois1;
69  QPoint m_Posi_Rois2;
70 
71 
72 
73  QGridLayout *m_layout;
74 };
75 
76 #endif // TERRAIN_H