-
Notifications
You must be signed in to change notification settings - Fork 0
/
Plateau.cpp
109 lines (101 loc) · 2.75 KB
/
Plateau.cpp
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
* File: Plateau.cpp
* Author: Brunathan
*
* Created on 1 décembre 2014, 10:35
*/
#include "Plateau.h"
using namespace std;
// constructeur de plateau avec une taille par défaut de 19
Plateau::Plateau()
{
taille=19;
tab=new int*[taille]; // création de taille tableau
for(unsigned int i=0;i<taille;i++)
{
tab[i]=new int[taille]; // création de taille case dans chaque tableau
}
for(unsigned int i=0;i<taille;i++)
{
for(unsigned int j=0;j<taille;j++)
{
tab[i][j]=0; // Initialisation à 0 du tableau
}
}
}
// constructeur de plateau qui copie le plateau argument
Plateau::Plateau(const Plateau& P)
{
Coord C;
taille=P.getTaille();
tab=new int*[taille]; // création de taille tableau
for(unsigned int i=0;i<taille;i++)
{
tab[i]=new int[taille]; // création de taille case dans chaque tableau
}
for(C.x=0;C.x<P.getTaille();C.x++)
{
for(C.y=0;C.y<P.getTaille();C.y++)
{
tab[C.x][C.y]=P.getIntersection(C); // Initialisation du tableau avec les valeurs de l'argument
}
}
}
// constructeur de plateau avec une taille parapétrable
Plateau::Plateau(int _taille)
{
taille=_taille;
tab=new int*[taille];// création de taille tableau
for(unsigned int i=0;i<taille;i++)
{
tab[i]=new int[taille]; // création de taille case dans chaque tableau
}
for(unsigned int i=0;i<taille;i++)
{
for(unsigned int j=0;j<taille;j++)
{
tab[i][j]=0;// Initialisation à 0 du tableau
}
}
}
// accès en lecture au contenu d'une intersection définir par ses coordonnées
int Plateau::getIntersection(Coord C) const
{
return tab[C.x][C.y];
}
// accès en lecture de la taille du plateau voila
int Plateau::getTaille() const
{
return taille;
}
// Placement d'un pion d'une couleur donnée à une intersection
void Plateau::placerPion(Coord C, int couleur)
{
tab[C.x][C.y]=couleur;
}
// suppression d'un pion par mise à 0 de la valeur de l'intersection
void Plateau::supprimerPion(Coord C)
{
tab[C.x][C.y]=0;
}
// Méthode d'affichage du plateau
void Plateau::affichage()
{
for (unsigned int i=0;i<taille;i++)
{
cout<<" "<<i+1;
}
cout<<" X"<<endl;
for(unsigned int j=0;j<taille;j++) // appel taille fois à la rédaction d'une ligne
{
cout<<j+1;
for(unsigned int i=0;i<taille;i++) // rédaction d'une ligne
{
if(tab[i][j] == -1) cout<<"O "; // O correspond au joueur Blanc
if(tab[i][j] == 1) cout<<"X "; // X correspond au joueur Noir
if(tab[i][j] == 0) cout<<". "; // . correspond à une case vide
}
cout<<endl;
}
cout<<"Y"<<endl;
}