[C] aide svp!!

Fermé
debutant - 14 déc. 2007 à 16:31
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 17 déc. 2007 à 08:46
Bonjour,
voila je programme un jeu pour m'entrainer en C, et j'aimerais que l'on m'aide car je suis bloqué dans certaine partie!!

merci d'avance

ps: la partie est en gras!!

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX 4

/* prototype fontion*/

/* fin prototype*/


/* fonction principale main*/


int main (void)

{
int vect_ordi[MAX], vect_joueur[MAX], limite= 4;
int ntour=0;
int i;



printf(" ***MASTER MIND** \n");


printf(" essaie de deviner une combinaison de quatre couleurs parmi les sept proposés\n");
printf(" vous avez droit a 10 essais!!!!!\n");
printf(" couleurs proposés\n");

printf(" 1 = rouge\n");
printf(" 2 = bleu\n");
printf(" 3 = vert\n");
printf(" 4 = jaune\n");
printf(" 5 = blanc\n");
printf(" 6 = orange\n");
printf(" 7 = noir\n");

/* combinaison_ordi=*/ initialiser_vecteur ()/*( *vect_ordi[0],*limite);*/
//on tire au hasard
for(i=0;i<limite;i++)
combinaison_ordi= (rand()%7)+1;


printf("que la partie commence");

while( comparer_nbr_bp(vect_ordi,vect_joueur,ntour == 0)
{
printf(" il vous reste %d coup a jouer ", (10-ntour));

demande_combinaison_joueur= demande_nbr ( *vect_joueur[0],*limite);

lire_combinaison_joueur= lire_nbr ( *vect_joueur[0],*limite);

bien_placer= comparer_nbr_bp ( *vect_ordi[0],*vect_joueur[0],*limite);

mal_placer = comparer_nbr_mp ( *vect_ordi[0],*vect_joueur[0],*limite);

trouve_pas = comparer_nbr_tp ( *vect_ordi[0],*vect_joueur[0],*limite);

ntour ++;
}

if (ntour != 10)
printf("bravo , vous avez gagner");
else
printf(" dommage, perdu");
getchar();
return 0;

}

/* les differents fonctions*/


void initialiser_vecteur ( *vect_ordi[0],*limite)

{
int i;
printf(" les nombres choisit par lordinateur");
for ( i=0;i<limite;i++)
{
vect_ordi[i]= (rand()%7+1;
}
return i;
}

void demande_nbr ( *vect_joueur[0],*limite)

{
int i;

for ( i=0;i<limite;i++)

{
printf("%d",vect_joueur[0]);

}
}

void lire_nbr ( *vect_joueur[0],*limite)


{
int i;

for ( i=0;i<limite;i++,vect_joueur++)

{
printf("%d",*vect_joueur);

}
return i;


}


void comparer_nbr_bp ( int *vect_ordi[0],int *vect_joueur[0],int *limite, int *ntour);
{
int i;
int trouve=0;

for ( i=0;i<limite;i++)
{
if(vect_ordi[i] == vect_joueur[i])
{
printf(" la couleur %d est bien correct,i+1);
trouve++;
}
if(trouve == 4)
return 1;
if (ntour == 10)
return 1;

}
return 0
}



/*void mal_placer = comparer_nbr_mp ( *vect_ordi[i],*vect_joueur[i],*limite)
{
int i,j,k;

if (vect_ordi[i] == 4)


*/



void comparer_nbr_tp ( *vect_ordi[0],*vect_joueur[0],*limite)
{
int i;
int trouve=0;

for ( i=0;i<limite;i++)
{
if(vect_ordi[i] != vect_joueur[i])
{
printf(" la couleur %d ne se trouve pas dans la combinaison ,i+1);
trouve++;
}

}
return trouve
}

6 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
14 déc. 2007 à 16:47
void initialiser_vecteur ( *vect_ordi[0],*limite)
il manque les types, et si j'ai ien compris *vect_ordi[0] n'a aucun sens !
Il faut remettre les type lors de l'implementation des fonctions.
Travail un plus sur les pointeur, je pense que tu as mal compris leurs fontionnements!
0
pourquoi *vect_ordi[0] n'aurait aucun sens?

je ne comprends pas?
0
j'ai rechangé mes petites faute mais au niveau des pointeurs , je dois dire que j'ai du mal!!!

vous pouvez m'aidez à construire ce programme !!!!

merci

[CODE]#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX 4

/* prototype fontion*/

/* fin prototype*/


/* fonction principale main*/


int main (void)

{
int vect_ordi[MAX], vect_joueur[MAX], limite= 4;
int ntour=0;
int i;



printf(" ***MASTER MIND** \n");


printf(" essaie de deviner une combinaison de quatre couleurs parmi les sept proposés\n");
printf(" vous avez droit a 10 essais!!!!!\n");
printf(" couleurs proposés\n");

printf(" 1 = rouge\n");
printf(" 2 = bleu\n");
printf(" 3 = vert\n");
printf(" 4 = jaune\n");
printf(" 5 = blanc\n");
printf(" 6 = orange\n");
printf(" 7 = noir\n");

/* combinaison_ordi=*/ initialiser_vecteur ()/*( int *vect_ordi[0],int *limite);*/
//on tire au hasard
for(i=0;i<limite;i++)
combinaison_ordi= (rand()%7)+1;


printf("que la partie commence");

while( comparer_nbr_bp(vect_ordi,vect_joueur,ntour == 0)
{
printf(" il vous reste %d coup a jouer ", (10-ntour));

demande_combinaison_joueur= demande_nbr ( *vect_joueur[0],*limite);

lire_combinaison_joueur= lire_nbr ( *vect_joueur[0],*limite);

bien_placer= comparer_nbr_bp ( *vect_ordi[0],*vect_joueur[0],*limite);

mal_placer = comparer_nbr_mp ( *vect_ordi[0],*vect_joueur[0],*limite);

trouve_pas = comparer_nbr_tp ( *vect_ordi[0],*vect_joueur[0],*limite);

ntour ++;
}

if (ntour != 10)
printf("bravo , vous avez gagner");
else
printf(" dommage, perdu");
getchar();
return 0;

}

/* les differents fonctions*/


void initialiser_vecteur ( int *vect_ordi[0],int *limite)

{
int i;
printf(" les nombres choisit par lordinateur");
for ( i=0;i<limite;i++)
{
vect_ordi[i]= (rand()%7+1;
}
return i;
}

void demande_nbr (int *vect_joueur[0],int *limite)

{
int i;

for ( i=0;i<limite;i++)

{
printf("%d",vect_joueur[0]);

}
}

void lire_nbr ( int *vect_joueur[0],int *limite)


{
int i;

for ( i=0;i<limite;i++,vect_joueur++)

{
printf("%d",*vect_joueur);

}
return i;


}


void comparer_nbr_bp ( int *vect_ordi[0],int *vect_joueur[0],int *limite, int *ntour);
{
int i;
int trouve=0;

for ( i=0;i<limite;i++)
{
if(vect_ordi[i] == vect_joueur[i])
{
printf(" la couleur %d est bien correct,"i+1);
trouve++;
}
if(trouve == 4)
return 1;
if (ntour == 10)
return 1;

}
return 0
}



/*void mal_placer = comparer_nbr_mp ( int *vect_ordi[i],int *vect_joueur[i],int *limite)
{
int i,j,k;

if (vect_ordi[i] == 4)


*/


void comparer_nbr_tp ( int *vect_ordi[0],int *vect_joueur[0],int *limite)
{
int i;
int trouve=0;

for ( i=0;i<limite;i++)
{
if(vect_ordi[i] != vect_joueur[i])
{
printf(" la couleur %d ne se trouve pas dans la combinaison ",i+1);
trouve++;
}

}
return trouve
}[\Code]
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
15 déc. 2007 à 03:44
tu devrais reviser tes pointeurs tu les utilises tres mal...
il faut aussi que tu revoies les appels de fonctions
voici ton programme que j'ai corrigé (si tu comprends pas quelquechose n'hesite pas a demander)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX 4

/* les differents fonctions*/

void init()
{
    srand(time(NULL));
}

void initialiser_vecteur ( int vect_ordi[MAX],int limite)
{
    int i;
        printf("l'ordinateur a choisi sa combinaison\n");
        for ( i=0;i<limite;i++)
        {
            vect_ordi[i]= (rand()%7)+1;
        }
}

void demande_nbr (int vect_joueur[MAX],int limite)
{
int i;

    for ( i=0;i<limite;i++)
    {
        printf("entre ta couleur %d : ",i+1);
        scanf("%d",&vect_joueur[i]);
    }
}

int comparer_nbr_bp ( int vect_ordi[MAX],int vect_joueur[MAX],int limite, int ntour)
{
int i;
int trouve=0;

    for ( i=0;i<limite;i++)
    {
        if(vect_ordi[i] == vect_joueur[i])
        {
            printf("la couleur %d est bien correct\n",i+1);
            trouve++;
        }
    if(trouve == 4)
        return 1;
    if (ntour == 10)
        return 1;
    }
return 0;
}

void comparer_nbr_tp ( int vect_ordi[MAX],int vect_joueur[MAX],int limite)
{
int i,j;
int trouve=0;

    for ( i=0;i<limite;i++)
    {
        trouve=0;
        for(j=0;j<limite;j++)
        {
            if(vect_ordi[j] != vect_joueur[i])
            {
                trouve++;
            }
        if(trouve==4)
            printf("la couleur %d ne se trouve pas dans la combinaison \n",i+1);
        }
    }
}

/* fonction principale main*/


int main (void)

{
int vect_ordi[MAX], vect_joueur[MAX];
int limite= 4;
int ntour=0;
int i;

printf(" ***MASTER MIND** \n");
printf(" essaie de deviner une combinaison de quatre couleurs parmi les sept proposes\n");
printf(" vous avez droit a 10 essais!!!!!\n");
printf(" couleurs proposes\n");

printf(" 1 = rouge\n");
printf(" 2 = bleu\n");
printf(" 3 = vert\n");
printf(" 4 = jaune\n");
printf(" 5 = blanc\n");
printf(" 6 = orange\n");
printf(" 7 = noir\n");

init();
//on tire au hasard
initialiser_vecteur (vect_ordi,limite);
printf("que la partie commence\n");

    while( comparer_nbr_bp(vect_ordi,vect_joueur,limite,ntour) == 0)
    {
        printf("il vous reste %d coup a jouer \n", (10-ntour));
        demande_nbr ( vect_joueur,limite);
        comparer_nbr_tp ( vect_ordi,vect_joueur,limite);
        ntour ++;
    }
    if (ntour != 10)
        printf("bravo , vous avez gagner");
    else
        printf(" dommage, perdu");
getchar();
return 0;
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaddict Messages postés 219 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 3 novembre 2008 14
15 déc. 2007 à 03:57
Héhé!

Attention débutant, je te conseille de bien comprendre tes pointeurs avant que ton prof ne te demande de lui remettre un travail pratique sur comment réaliser des listes doublement chaînées et des arbres ;-p

Sur ce,

Bonne chance en prog! sois persévérant :)

Kaddict
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 déc. 2007 à 08:46
ton
*vect_ordi[0]
a autant de sens que de faire :
int i=3;
*i=*i+2;

l'opérateur unaire '*' sert à déreférencé une pointeur, si la variable qui suis est une valeur, ça n'as aucun sens.
donc, revoi les pointeurs doucement, en fesant des tests et exercices de base jusqu'à comprendre coment ils fonctionnent
0