[C] programmer jeu

Fermé
ludovic - 12 déc. 2007 à 15:41
 Luffy Duck - 12 déc. 2007 à 16:43
Bonjour,

j'ai vu plusieurs façon de programmer le jeu master mind mais j'aimerais utiliser des fonctions avec POINTEURS!
j'ai des problème pour la vérification des valeurs surtout avec les pointeurs!

quelqu'un pourrait m'expliquer à comprendre?

merci



1. #include <stdlib.h>
2. #include <stdio.h>
3.
4.
5. void main (void)
6.
7. {
8. intro();
9. initvect();
10. demande_nbre();
11. verif ();
12.
13.
14.
15.
16.
17.
18.
19. void introduction () /* intro*/
20. {
21.
22. printf(" mastermind \n");
23.
24.
25. printf(" deviner une combinaison de quatre couleurs parmi les sept proposés\n");
26. printf(" 10 essais\n");
27. printf(" couleurs associé au chiffre\n");
28.
29. printf(" 1 = rouge\n");
30. printf(" 2 = bleu\n");
31. printf(" 3 = vert\n");
32. printf(" 4 = jaune\n");
33. printf(" 5 = blanc\n");
34. printf(" 6 = orange\n");
35. printf(" 7 = noir\n");
36. } /* fin introduction*/
37.
38. void initvect () /* remplissage du vecteur par des nombres aléatoires*/
39. {
40. int nbr;
41.
42.
43. srand(time(NULL));
44.
45. nbr = rand()%7+1;
46.
47.
48. } /* fin remplissage du vecteur */
49.
50. void demande_nbre ()/* demande des essais de l'utilisateur */
51.
52. {
53. int cpt;
54. int essai;
55.
56.
57.
58. printf("vous avez 10 essais\n");
59. printf(" proposez\n ");
60.
61. for( cpt =0;cpt<4;cpt++)
62. {
63. printf(" la %d e position est la couleur", cpt+1);
64. scanf(" %d",&essai);
65. }
66. } /* fin de demande*/
67.
68. void verif () /* verification des nombres encodés*/
69.
70. {
71. if (
72.
73.
74.
75.
76.
77.
78.
79. } /* fin verification*/
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91. }
A voir également:

4 réponses

Salut =)

juste une question : ça compile ce bout de code ? Tes fonctions ne sont pas déclarées avant leur appel.
0
voila mais le probléme se situe avec les pointeurs que je dois mettre dans les paramètre!

#include <stdlib.h>
#include <stdio.h>


void intro ()
void initvect ()
void demande_nbr ()
void verif ()

void main (void)

{
intro();
initvect();
demande_nbre();
verif ();

}





void intro ()/* introduction*/
{
printf(" bienvenue dans le jeu\n");
printf(" ***MASTER MIND** \n");

printf(" voici les regles du jeu:\n");
printf(" essaie de deviner une combinaison de quatre couleurs parmi les sept proposés\n");
printf(" attention!!! vous avez droit a 10 essais!!!!!\n");
printf(" **voici les 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");
} /* fin introduction*/

void initvect () /* remplissage du vecteur par des nombres aléatoires*/
{
int nbr;


srand(time(NULL));

nbr = rand()%7+1;


} /* fin remplissage du vecteur */

void demande_nbre ()/* demande des essais de l'utilisateur */

{
int cpt;
int essai;



printf("vous avez 10 essais\n");
printf(" proposez\n ");

for( cpt =0;cpt<4;cpt++)
{
printf(" la %d e position est la couleur", cpt+1);
scanf(" %d",&essai);
}
} /* fin de demande*/

void verif () /* verification des nombres encodés*/

{
if (







} /* fin verification*/











}
0
j'ai rechanger pour la première fonction!

#include <stdlib.h>
#include <stdio.h>


void intro ()
void initvect ()
void demande_nbr ()
void verif ()

void main (void)

{
intro();
initvect();
demande_nbre();
verif ();

}





void intro ()/* introd*/
{

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

printf(" voici les regles du jeu:\n");
printf(" essaie de deviner une combinaison de quatre couleurs parmi les sept proposés\n");
printf(" attention!!! vous avez droit a 10 essais!!!!!\n");
printf(" **voici les 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");
} /* fin intro*/


void initvect (*vect[i],) /* remplissage du vecteur par des nombres aléatoires*/
{
int nbr;

for (i=0; i<4; i++)
{
srand(time(NULL));

nbr = rand()%7+1;
}

} /* fin remplissage du vecteur */



void demande_nbre ()/* demande des essais de l'utilisateur */

{
int cpt;
int essai;



printf("vous avez 10 essais\n");
printf(" proposez\n ");

for( cpt =0;cpt<4;cpt++)
{
printf(" la %d e position est la couleur", cpt+1);
scanf(" %d",&essai);
}
} /* fin de demande*/

void verif () /* verification des nombres encodés*/

{
if (







} /* fin verification*/











}
0
Alors il y a plusieurs problèmes dans ton code :

-> tu déclares ta variable locale nbr dans ta fonction initvect(). Comme cette variable est locale, elle ne pourra être utilisée à la sortie de la fonction, elle sera détruite. Pour ça, 2 solutions : variables globales (en général déconseillé, mais c'est surtout pour les gros projets, pour une petite appli comme celle-là, tu peux l'utiliser), soit tu déclares ton vecteur dans ton main, et tu les passes en paramètres à tes fonctions.

-> ta fonction initvect() n'initialises pas un vecteur mais simplement la même variable 4 fois. Pour avoir un vecteur il te faut absolument utiliser un pointeur ou un tableau.

Désolé, je ne te donne pas le code, car j'imagine que tu fais ça pour apprendre, donc si je te donne la solution, ce ne serait pas très pédagogique ;-)

bon courage !
0