IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Jeu Othello et quelque soucis avec une structure


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Jeu Othello et quelque soucis avec une structure
    Bonjour, j'ai pour projet l'implémentation du jeu "Othello". Certaines strutures m'ont été imposées, en voici quelques exemples.
    Mon Othello.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <stdio.h>
    #include <stdlib.h>
     
    #ifndef OTHELLO
    #define OTHELLO
     
     
    typedef char joueur;  /* Permet de représenter un joueur : B pour joueur Blanc et N pour joueur Noir */
    typedef char coup[3]; /* Représentation d'un coup */
    typedef char othellier[8][8];  
    typedef struct {
    	int nbcoups;
    	coup (*coups)[3];
    } partie;
    #endif
    J'ai voulu me familiariser avec la structure partie qui va me servir dans une des fontions à programmer et ainsi j'ai voulu tester dans mon main les 2 fonctions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void affiche_coup(coup c) {
    	printf("Joueur = %c, Coup possible en %c%d\n",c[0],c[1],c[2]);
    }
    void affiche_suite_coups(partie p) {
    	int i = 0;
    	for(i = 0; i < p.nbcoups; i++) {
    		affiche_coup(p.coups[i]);
    	}
    }
    Mais voila j'ai une erreur à la compilation, voici mon main suivi des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main() {
    	partie p;
    	p.nbcoups = 2;
    	coup n1 = {'N','A',2};
    	coup n2 = {'N','A',6};
    	p.coups[0] = n1;
    	p.coups[1] = n2;
    	affiche_suite_coups(p);
    	return 0;
    }
    Les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    main.c: In function ‘main’:
    main.c:9: error: incompatible types in assignment
    main.c:10: error: incompatible types in assignment
    make: *** [main.o] Error 1
    Honnetement si vous pouviez m'aider, ça serait cool car je bloque pas mal. Je ne comprend pas pourquoi il m'indique une erreur sur le type entre les variable coups[0] et coupn1 ...

  2. #2
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    C'est bon pour moi alors

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Oui, mais là on a une variante puisqu'il ne s'agit plus de tableau "flexible"

    coup (*coups)[3];définit le champ coups comme un pointeur sur un tableau de 3 coup (donc sur un tableau de 3 tableaux de 3 char). Attention que ceci ne réservera pas de place pour les tableaux mais uniquement pour un pointeur lors de la création de la structure.
    p.coups[0]a donc comme type "tableau de 3 coup" or on n'a jamais le droit d'écrire tableau = quelque chose.
    Si on veut copier un tableau dans un autre, on le copie élément par élément ou avec une fonction du genre memcpy() ou memmov().

    De toute façon, ça plantera à l'exécution, le tableau p.coups[0] n'a jamais été créé.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Citation Envoyé par diogene Voir le message
    Oui, mais là on a une variante puisqu'il ne s'agit plus de tableau "flexible"

    coup (*coups)[3];définit le champ coups comme un pointeur sur un tableau de 3 coup (donc sur un tableau de 3 tableaux de 3 char).
    J'ai du mal à imaginer que cette construction serve réellement, vu le lien sur le sujet posté par chamimi. Il s'agit à mon avis d'une mauvaise interprétation du PO.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/03/2010, 18h38
  2. Quelques soucis avec un lecteur MP3
    Par Guesh13 dans le forum Audio
    Réponses: 3
    Dernier message: 20/02/2006, 14h57
  3. [MySQL] Soucis avec une insertion dans une base
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 27/01/2006, 14h03
  4. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  5. SOucis avec une reequete imbriquee
    Par Ni4k dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/03/2004, 08h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo