Bonjour,
nous rencontrons actuellement un problème sur un de nos programmes qui traite d'un jeux d'échec.
en gros nous avons une fonction dans une classe qui doit déplacer des pièces sur l'échéquier mais il nous met des erreurs comme celle-ci au moment de l'affectation des déplacement de variable :
error C2109: subscript requires array or pointer type
Nous ne nous souvenons plus comment les résoudre...
voila notre bout de code qui pose problème
*************************************************
// piece1.cpp: implementation of the piece class.
//
//////////////////////////////////////////////////////////////////////
#include "piece1.h"
#include "partie.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Piece::move(int X1,int Y1,int X2,int Y2){
E[X2][Y2]=E[X1][Y1];
E[X1][Y1]=NULL;
}
***********************************************
et voila la classe ou notre tableau a été déclaré et initialisé :
***************************************************
// partie.h: interface for the partie class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PARTIE_H__1F393326_0873_4102_BBB2_F7BE2B3C358B__INCLUDED_)
#define AFX_PARTIE_H__1F393326_0873_4102_BBB2_F7BE2B3C358B__INCLUDED_
#include "Joueur.h"
#include <iostream.h>
#include <string.h>
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class Joueur;
class Partie
{
friend class Piece;
private:
char * date;
Joueur *j1;
Joueur *j2;
char * E[7][7];
public:
//Constructeur par défaut
Partie() {
cout<<"appel Partie()"<<endl;
date = new char [20];
strcpy(date, "jj/mm/yy");
j1=NULL;
j2=NULL;
};
//Conctructeur avec paramètres
Partie(char * date) {
cout<<"appel Partie(char * une_date)"<<endl;
setdate(date);
j1=NULL;
j2=NULL;
};
//Date
void setdate (char *a){
date=new char [strlen(a)+1];
strcpy(date,a);
};
char * getdate(){
return date;
};
//Gestion joueur
Joueur * getjoueur(int i);
int quittejoueur(Joueur * player);
int addjoueur(Joueur * player);
//Fin de la partie
void terminer(void);
void afficherPartie(void);
void initechiquier(void);
void afficherechiquier(void);
void Partie::modifier(void);
//Destructeur de la classe
virtual ~Partie(){
cout<<"appel du ~Partie"<<endl;
if( j1 == NULL && j2 == NULL){
delete [] date;
cout<<"destruction de la partie"<<endl;
}
};
};
#endif // !defined(AFX_PARTIE_H__1F393326_0873_4102_BBB2_F7BE2B3C358B__INCLUDED_)
**************************************
Nous bossons sous visual C++ en ce moment voila, nous vous remercions d'avance pour vos réponses qui nous éclaire souvent!
cordialement, shinohinata!
