begin process at 2012 05 30 02:31:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

jeux d'échec qui nous met en échec!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

jeux d'échec qui nous met en échec!!

jeudi 5 avril 2007 à 15:14:43 | jeux d'échec qui nous met en échec!!

shinohinata01

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!
jeudi 5 avril 2007 à 15:28:09 | Re : jeux d'échec qui nous met en échec!!

yann_lo_san

Tu peux essayer de déclare E comme ceci :
char E[7][7];   // enlever operateur *

Car je ne vois pas ou cela peut nécessiter un pointeur vers un tableau de char à 2 dimentions.
Sinon il aurait fallu faire :
*(E[X2][Y2]) = *(E[X1][Y1]);

jeudi 5 avril 2007 à 15:32:57 | Re : jeux d'échec qui nous met en échec!!

shinohinata01

après modification on obtient toujours nos 9erreurs et nos 2warnings :
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.h(31) : warning C4183: 'piece': member function definition looks like a ctor, but name does not match enclosing class
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.h(36) : warning C4154: deletion of an array expression; conversion to pointer supplied
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2065: 'E' : undeclared identifier
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(13) : error C2106: '=' : left operand must be l-value
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(14) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(14) : error C2109: subscript requires array or pointer type
c:\documents and settings\mugiw@r@ no luffy\bureau\poo\poo\jglkdfj\echec vv2.2\piece1.cpp(14) : error C2106: '=' : left operand must be l-value

a c'est chiant je ne vois pas de quoi ca vient?
jeudi 5 avril 2007 à 16:10:44 | Re : jeux d'échec qui nous met en échec!!

shinohinata01

personne n'a une idée?

jeudi 5 avril 2007 à 17:19:42 | Re : jeux d'échec qui nous met en échec!!

juju12

Apparement il reconnaît pas E tout simplement:
d'ailleurs je comprends pas trop votre code non plus : E est un tableau déclaré dans une classe
donc quand vous l'utilisez dans piece1.cpp, il faut mentionner la classe à laquelle il appartient partie1.E[x][y] par exemple
jeudi 5 avril 2007 à 19:03:40 | Re : jeux d'échec qui nous met en échec!!

acx01b

peut-être que mettre un champ "Partie &partie;" ou "char *plateau;" dans la classe piece est plus logique ? a+
jeudi 5 avril 2007 à 23:43:36 | Re : jeux d'échec qui nous met en échec!!

shinohinata01

merci a juju 12 qui a réglé le problème mais maintenant il nous sort cette erreur qui n'est pas logique du tout :
C:\Documents and Settings\mugiw@r@ no luffy\Bureau\POO\poo\jglkdfj\echec vv2.2\piece1.cpp(23) : error C2143: syntax error : missing ';' before '.'

et je voulais savoir également si avec les tableaux que nous avons fait un utilisateur pourra bien rentrer les coordonnées d'une nouvelle case et donc faire avancer la pièce dans cette autre endroit du tableau que l'on a créé tout en remettant la valeur de la case a null?

merci pour vos réponses précédentes et futures!

vendredi 6 avril 2007 à 10:39:18 | Re : jeux d'échec qui nous met en échec!!

shinohinata01

quelqu'un a une idée?
vendredi 6 avril 2007 à 11:20:20 | Re : jeux d'échec qui nous met en échec!!

juju12

Je pense que l'objet n'est pas défini. Avez-vous pensé à déclarer la partie, genre Partie partie1?
De plus, avis personnel : votre définition des classes me paraît un peu étrange, pourquoi pas une classe Echiquier contenant un tableau de classes Piece?
vendredi 6 avril 2007 à 11:33:52 | Re : jeux d'échec qui nous met en échec!!

shinohinata01

mais le probleme c'est que chaque piece devra etre différencier de part sa couleur et de part sa fonction (pion, fou, tour,...) comment la case du tableau saura que c'est un fou ou une tour a l'intérieur???

1 2 3

Cette discussion est classée dans : date, int, void, joueur, partie


Répondre à ce message

Sujets en rapport avec ce message

probleme avec des classes [ par khalilo ] salut a tousj'ai un probleme dans un projet qui consiste a faire un tictactoe avec ia qui apprend.Le probleme est le suivant : sachant que je compile Tableau à 3 dimensions [ par VinceExtense ] Savez vous comment faire passer en paramètre un tableau à 3 dimensions ?void fonction1(int x,iny y,int z){int tab[x][y][z];}void fonction2(int ***tab, celà n'enregistre pas [:(!],grrrr [ par oceane67 ] voilà, mon programme n'enregistre toujours pas, je ne sais pas pourquoi, surtout qu'il fait comme si c'etait le cas, je desepesere,voici mon programme prob de boucle 2!!!!!!! [ par matteokun ] matteokunvoila le code. si quelqu'un peut m'aider ca serait sympa...void Partie::ProposerLettre() { int Partie = 0; int Action = 0; int FinJeu = 0; in code:probleme de boucle!!! [ par matteokun ] matteokunvoila le code.si quelqu'un peut m'aider ca serait sympa! mercivoid Partie::ProposerLettre() { int Partie = 0; int Action = 0; int FinJeu = 0; Classe et Piles... [ par Amanobuo ] Bonjours,j'apprend les class et je voudrais pour m'entrainer realiser une implementation statique de type pile grace a une class. Le code est bugé car Juste une vérification [ par popi0016 ] Bonjour à tous. Je suis autodidacte dans la développement C++ et C, et mon niveau d'apprentissage se situe à la création d'objets (forme canonique d'u classe [ par ToToL ] Bonjour j'ai un eptit souci de classe. tout d'abor voici mon code source :#include #include #include int InitSDL( void );void Analise( void );int Draw Problème de compilation avec un programme simple utilisant la SDL [ par Alpacha ] je suis en train d'écrire un programme utilisant la SDL, un truc tout bête parce que je suis en train d'apprendre la SDLvoici le programme : #include pb de compilation [ par norton ] bonjour, je desir compiler le code suivant mais j'ai une erreur.mon code :#include #include #include void Display();void Reshape(int,int);int main( in


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,157 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales