[C] aide svp!!
debutant
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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
}
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
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!
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!
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]
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]
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)
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; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
ton
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
*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