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 :

Probléme en C du Jeu de la vie


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Probléme en C du Jeu de la vie
    Bonjour les gens ,

    Je me présente déjà , Je me nome stéphanie , j'ai 19 ans et je viens d’intégrer une école d'ingénieur en informatique apres une MP ....... , en effet en cherchant sur internet je suis tomber sur ce forum et il a l'air pas mal , en fin bref sans vous raconter toute ma vie je vais aller droit au but et je vous explique mon soucis ,
    En fait je dois faire un projet en programmation le problème c'est que je débutante et je connais rien en informatique mais il faut que donne mon projet demain soir ,
    sans vous laissez patienter , voici mon problème
    je dois faire un programme qui simule le jeu de la vie , en utilisant les fichiers , le problème c'est que j'arrive pas a compiler le programme donc est ce qu'un expert pourrai m'aider SVP
    Voici le code que j'ai t fais
    Ps : Je suis débutante en C donc désole si mon programme est plein de fautes



    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
    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
    #include <stdio.h>
    #include <stdlib.h>
     
     
     
    // Defenition Variable ;
    int T[][];
     
    int  X, Xmax, Y, Ymax ,i ,j ,nb_cv , C_cellule  , X_parcours,Y_parcours, nbr_iteration, reponse ;
     
    int New_t[] ;
     
     
    int main (int argc , char **argv)
    {
        char T[8][8];
      if(argc > 1)// nombre d'arg + nom fichier 
      {
        FILE * F = fopen("taille-x","r"); // fonction pour ouvrir le fichier
     
        if(F == NULL)
        {
            printf("erreur fichier1\n");
            exit(0);
        }
        int nbr = fread(T,sizeof(int),8*8,F);
        if(nbr<=0)
        {
            printf("erreur fichier2\n");
            exit(0);
        }
       }
       else 
       {
           Initialisation_tableau(T);
       }
     
       do
       {
            printf("Entrez le nombre de génération"); 
            scanf("%d",&nbr_iteration);
            for(i=0;i<nbr_iteration;i++)
            {
                traitement();
            }
            printf("voulez-vous continuer?");
            scanf("%d",&reponse);
       }while(reponse == "o");
     
    }
    void Initialisation_tableau ()
    {
        //todo
    }
     
    // intialiser tableau 
    void traitement()   // Fonction de traitement 
    {
     
     
     
        for(X=0;X<Xmax;X++)
        {
    		for(Y=0;Y<Ymax;Y++)
    		{
    			for (i=0;i<C_cellule;C_cellule++)
    			{
    				for(j=0;j<C_cellule;C_cellule++)
    					X_parcours == X+i;
    					Y_parcours == Y+j;
     
    					if (T[X_parcours][Y_parcours]==1)
    					{
    						nb_cv ++ ;// on incremente le nombre de cellule Vivante 
    					}
     
     
    					if (nb_cv<2 || nb_cv>=4)
    					{
    						New_t[X][Y] == 0;
    					}
     
     
    					else
    					{
    						New_t[X][Y]==1;
    					}
     
    					if (nb_cv==3)
    					{
    						New_t[X][Y]==1;
    					}
    					else
    					{
    						New_t[X][Y] =0;
    					}
    			}
    		}
    	}
    }
     
     
     
     
    void afficher_tableau()
    {
        for(i=0;i<8;i++)
        {
            for(j=0;j<8;j++)
            {
                printf("%d",T[i][j]);// pour l'initialisation T[X_parcours][Y_parcours] = i%2;
            }
            printf("\n");
        }
    }
    Pour ceux qui connaissent pas le jeu de la vie
    http://fr.wikipedia.org/wiki/Jeu_de_la_vie

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    C'est difficile de t'aider sans avoir plus d'information.

    Qu'utilises-tu pour compiler ?
    Qu'est-ce que le compilateur te dis ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    J'utulise Visual studio ,
    en faite il m'affiche l'erreur la

    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
    16
    17
    18
    19
    1>------ Début de la génération : Projet : Jeu de La vie, Configuration : Debug Win32 ------
    1> Jeu de La vie.cpp
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(2): warning C4627: '#include <stdlib.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
    1> Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(7): error C2087: 'T' : indice manquant
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(24): error C3861: 'exit' : identificateur introuvable
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(30): error C3861: 'exit' : identificateur introuvable
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(35): error C3861: 'Initialisation_tableau' : identificateur introuvable
    1>c:\users\stepahnie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(44): error C3861: 'traitement' : identificateur introuvable
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(48): error C2446: '==' : pas de conversion de 'const char *' en 'int'
    1> Aucun contexte dans lequel cette conversion est possible
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(48): error C2040: '==' : les niveaux d'indirection de 'int' et de 'const char [2]' sont différents
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(69): warning C4553: '==' : opérateur sans effet ; souhaitiez-vous '=' ?
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(70): warning C4553: '==' : opérateur sans effet ; souhaitiez-vous '=' ?
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(80): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(86): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(91): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(95): error C2109: un indice requiert un type tableau ou pointeur
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(2): warning C4627: '#include <stdlib.h>' : ignoré lors de la recherche d'une utilisation d'un en-tête précompilé
    1> Ajoutez la directive à 'stdafx.h' ou régénérez l'en-tête précompilé
    Essaye de regarder dans les paramètres de ton projet, le compilateur ne devrait pas rechercher des en-tête précompilée.
    Je n'utilise pas Visual studio donc je ne pourrais pas t'aider à ce niveau là.
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(7): error C2087: 'T' : indice manquant
    A la ligne 7, tu déclare un tableau mais tu ne donne pas sa taille. Comment le compilateur peut-il savoir la taille qu'il lui faut?
    D'ailleur attention, à la ligne 16 tu redéfini T, dans ton main, tu utiliseras donc le char T[8][8] et dans la fonction afficher_tableau, tu utiliseras le int T[][].
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(24): error C3861: 'exit' : identificateur introuvable
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(30): error C3861: 'exit' : identificateur introuvable
    Tout à fait normal puisque stdlib.h n'a pas été trouvé.
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(35): error C3861: 'Initialisation_tableau' : identificateur introuvable
    1>c:\users\stepahnie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(44): error C3861: 'traitement' : identificateur introuvable
    Tu dois déclarer le prototype de tes fonctions avant le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void maFonction(void);
    int main(void)
    {
    //...
    }
    void maFonction(void)
    {
       //....
    }
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(48): error C2446: '==' : pas de conversion de 'const char *' en 'int'
    1> Aucun contexte dans lequel cette conversion est possible1>
    c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(48): error C2040: '==' : les niveaux d'indirection de 'int' et de 'const char [2]' sont différents
    Pour les caractère on utilise les simples quotes: 'a' 'o', les guillemets sont réservé aux chaines de caractères : "" "e" "toto".

    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(69): warning C4553: '==' : opérateur sans effet ; souhaitiez-vous '=' ?
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(70): warning C4553: '==' : opérateur sans effet ; souhaitiez-vous '=' ?
    Pour une affectation, on utilise un seul =, == sert aux comparaison.
    Citation Envoyé par Stephanie larges Voir le message
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(80): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(86): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(91): error C2109: un indice requiert un type tableau ou pointeur
    1>c:\users\stephanie\documents\visual studio 2012\projects\jeu de la vie\jeu de la vie\jeu de la vie.cpp(95): error C2109: un indice requiert un type tableau ou pointeur
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    Tu as déclaré newT comme étant un tableau à une seule dimension or tu l'utilise comme un tableau à plusieurs dimensions.

    EDIT : Je te conseille d'ailleurs de regarder les excellents tutoriels dont ce site regorge ainsi que les FAQ. Tu as par ailleurs une fonction de recherche tout en haut, milieu-droit.
    Je pense que tu auras besoin de t'y plonger le plus vite possible pour le pas trop être "à la traine" en cours car ça va assez vite.
    Et puis pour une fois qu'une fille suit un cursus informatique, on ne veut pas la perdre.

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Suite à quelques MP, je poste une solutions pour la mise à jour du tableau ce qui permettra aux autres d'en profiter.


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    int tmpTab[8][8] = tab; //copie du tableau pour avoir des valeurs justes.
                for(int i = 0; i != 8; ++i)
                        for(int j = 0; j != 8; ++j)
                            tab[i][j] = verifVivant(i,j,tmpTab);
     
     
    int verifVivant(int i, int j, int tmpTab[8][8])
    {
        int imax = i + 1;
        int jmax = j+1;
        int jmin = j-1;
        int a = 0; //nombre de cellules vivantes (y compris la cellule en cours.
        for( i-- ; i <= imax; i++) //on va de i-1 à i+1
        {
            if( i < 0 || i >= 8) //si i n'est pas valable, on passe à la ligne suivante
                continue; //certains barbus n'aimeront pas le continue.
            for( j = jmin; j <= jmax; j++) // on va de j-1 à j+1
            {
                if( j < 0 || j >= 8) //idem précédant
                    continue;
                if( tmpTab[i][j] ) //si la cellule est vivante, on incrémente a;
                    a++;
            }
        }
        // /!\ On compte aussi la cellule en cours d'étude.
        if( tmpTab[imax-1][jmax-1] && a == 4) // si la cellule est vivante et qu'elle a trois voisins vivant, c'est le même effet que si elle avait deux voisins vivants.
            a = 3;
                //
        return a == 3; //si a == 3 : deux solutions :
        // - la cellule est vivante et elle a 2 voisins (ou 3 vivants)
        // - la cellule est morte et elle a 3 voisins vivants.
    }

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jeu de la vie, problème d'affichage.
    Par -ezano- dans le forum Débuter
    Réponses: 5
    Dernier message: 22/09/2009, 12h55
  2. jeu de la vie (conway-petit problème..)
    Par morius dans le forum Ruby
    Réponses: 8
    Dernier message: 18/03/2009, 13h00
  3. [SDL et C] Problème avec mon jeu de la vie
    Par _SamSoft_ dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 24/05/2008, 09h43
  4. Problème pour le jeu de la vie
    Par daninou dans le forum Débuter
    Réponses: 8
    Dernier message: 04/12/2007, 21h14
  5. Problème jeu de la vie de Wolfram
    Par romromp dans le forum Pascal
    Réponses: 14
    Dernier message: 11/03/2007, 19h58

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