| 12
 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
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 
 | 
#include<iostream>
#include<string>
using namespace std;
class Case {
private:
	int x ; //ligne
	int y ; //colonne
	char etiq ; // etiquette pour savoir si c'est un pion P ou vide '_'
	
public:
		// getters et setters 
	int getX(){return x;}
	int getY(){return y;}
	void setX(int a){x = a;}
	void setY(int b){y=b;}
	void setEtiq(char C){etiq = C;}
	char getEtiq(){return etiq;}
	
	// constructeur 
	Case();
	Case(const Case& C); // constructeur par recopie je ne sais pas si la déclaration est bonne 
		Case(int lig,int col,char& etiqette);
	~Case();
	void Afficher();
	ostream& operator <<(const Case& B); // surcharge de l'operateur << afin d'afficher une case 
	
	};
	// deinition des méthodes Case 
		Case::Case():x(0),y(0),etiq('_'){}
		
			Case::Case(const Case& D){
				
				x= D.x;
				y = D.y;
				etiq = D.etiq;
				}
			Case::Case(int lig,int col,char& etiqette):x(lig),y(col),etiq(etiqette){}
				ostream& operator <<(ostream& out, Case B){
					
					out << "ligne= "<<B.getX() <<" "<<"colonne= " << B.getY() <<" "<<"etiquette= "<<B.getEtiq()<< endl;
					}
				void Case::Afficher(){
					
					cout << "renseignement sur cette case" << *this << endl ;
					}
					
			Case::~Case(){}
			
			// Class Piece 
	
class Piece {
private:
	Case* place; // je pensais qu'une pièce pointe sur une case 
		
public:
	Piece();
		~Piece();
		    void Deplacer(int ligne , int colonne,char C); // pour pouvoir le déplacer 
		    
				void DeplacerCase(const Case& B); // délacement à partir d'une case 
	
	
	};
	
	Piece::Piece(){
		place = new Case();
		}	
	Piece::~Piece(){}	
	
	void Piece::Deplacer(int ligne , int colonne , char P){
		
		place->setX(ligne);
		place->setY(colonne);
		place->setEtiq(P);
		
		}	
		
   void Piece::DeplacerCase(const Case& C1){
		int ligne1;
		ligne1 = C1.getX();
		int colonne1 = C1.getY();
		char eti = place->getEtiq();
		
		place->setX(ligne1); // on change ligne piece
		place->setY(colonne1); // on change colonne piece
		C1.setEtiq(eti); // on change l'étiquette de la case 
		
		}	
		
		// classe Pion : un pion est une pièce 
class Pion:public Piece {
	private:
		string couleur;
			char eti ;
	public:
	Pion(string noir);
	~Pion();
	void setCouleur(string N){couleur = N;}
		
	
	
	
	};
	
	Pion::Pion(string noir){
			Piece();// on fait appel au constructeur de base 
					couleur = "noir";
						eti = 'p';
			
		}
 Pion::~Pion(){}
	
// more pointers
#include <iostream>
using namespace std;
int main ()
{
	Case P1;
	Pion P2("noir");
	 
	P1.Afficher();
  
  return 0;
} | 
Partager