Votre question

[RESOLU]Petit problème de débutant en C

Tags :
  • Time
  • Programmation
Dernière réponse : dans Programmation
19 Février 2009 11:51:49

Bonjour à tous !!

Donc voilà je suis en train d'étudier le C grâce au site du zéro. J'en suis à la fin des fonctions et pour l'instant je comprends bien ce que je fais.
J'essaye de faire ce qui est indiqué (le jeu du plus ou moins) en y incorporant différentes fonctions. L'ensemble marche, mais lorsque l'utilisateur fait un choix dans le menu (en console) le menu se ré-affiche plusieurs fois avant de "valider" le choix.

Voilà mon code:

Citation :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

long genereNombre(long Min, long Max)
{
long nombre = 0;
nombre = (rand() % (Max - Min + 1)) + Min;
return (nombre);
}

long compareNombres(long nombre_entre, long nombre_mystere, long compteur)
{

if (nombre_entre < nombre_mystere)
printf("C'est plus\n");
else
if (nombre_entre > nombre_mystere)
printf("C'est moins\n");
else printf("Felicitation vous avez trouve le nombre mystere en %ld tentative(s)!\n\n", compteur);
}

long mode_de_jeu()
{
long choix = 0;

printf("--Veuillez choisir un mode de jeu--\n\n");
printf("1. 1 joueur Vs l'ordinateur\n");
printf("2. 2 joueurs\n");
printf("3. Quitter\n");

scanf("%ld", &choix);

return (choix);
}

int main(int argc, char** argv)
{
long nombreMystere = 0, nombreEntre = 0;
const long MAX = 100, MIN = 1;
long choix = 0;
long nombre_mystere_2_joueur = 0;
long nombre_entree_2_joueur = 0;
long compteur = 0;

do
{
switch (mode_de_jeu())
{
case 1:
nombreMystere = genereNombre(MIN, MAX);
do
{
printf("Quel est le nombre mystere ?\n ");
scanf("%ld", &nombreEntre);
compteur++;
compareNombres(nombreEntre, nombreMystere, compteur);
}
while (nombreEntre != nombreMystere);
compteur = 0;
break;
case 2:
printf("Choisissez un nombre \n\n");
scanf("%ld", &nombre_mystere_2_joueur);

printf("Joueur 2 essayez de trouver le nombre mystere !!\n\n");
do
{
scanf("%ld", &nombre_entree_2_joueur);
compteur++;
if (nombre_entree_2_joueur < nombre_mystere_2_joueur)
printf("C'est plus\n");
else
if (nombre_entree_2_joueur > nombre_mystere_2_joueur)
printf("C'est moins\n");
else
printf("Felicitation vous avez trouvez le nombre mystere en %ld tentative(s)\n\n", compteur);
compteur = 0;
}
while (nombre_entree_2_joueur != nombre_mystere_2_joueur);
break;
case 3:
return (0);
break;
default :
printf("Entree non valide\n");
break;
}
}
while (mode_de_jeu() != 3);

system("PAUSE");
return 0;
}


Donc voilà ca doit être quelque chose de très simple pour vous mais moi je trouve pas ^^

Merci d'avance
byebye

Autres pages sur : resolu petit probleme debutant

21 Février 2009 16:11:52

une réponse constructive :
parce que la fonction mode_de_jeu est appelée deux fois à chaque boucle

  1. long mode_de_jeu()
  2. {
  3. long choix = 0;
  4.  
  5. printf("--Veuillez choisir un mode de jeu--\n\n");
  6. printf("1. 1 joueur Vs l'ordinateur\n");
  7. printf("2. 2 joueurs\n");
  8. printf("3. Quitter\n");
  9.  
  10. scanf("%ld", &choix);
  11.  
  12. return (choix);
  13. }
  14.  
  15. int main(int argc, char** argv)
  16. {
  17. do
  18. {
  19. switch (mode_de_jeu())
  20. {
  21.  
  22. }
  23. }
  24. while (mode_de_jeu() != 3);
  25. }

m
0
l
a b L Programmation
21 Février 2009 21:09:20

Citation :
Un conseil, arrête tout de suite si tu ne veux pas aller droit dans le mur.
Il n'y a que des âneries sur ce site (pseudo-tutoriels écrits par... des gamins (si, si !) n'ayant donc aucune expérience pro)
Voir les avis des pros (Usenet et BBS)... Ils en rigolent encore, bien que cela soit grave d'oser écrire des torchons pareils et d'empêcher des passionnés de progresser.

Lis la Bible, le K&R, et là, tu apprendras réellement le C...

Tu veux dire que les pros ont suivis ces tutoriaux ? :lol: 
J'avais lu une page de ce site, et ça me semblait très pédagogique pour les débutants, qui, justement, n'ont pas besoin d'entrer dans les détails dans un premier temps.

Une dernière chose, tu te caches derrière des "pros" participant aux babillards, mais toi, pourquoi penses-tu qu'il va aller dans le mur avec ce site?
m
0
l
25 Février 2009 14:07:50

Salut !!

Merci pour vos réponses ^^

Moi je trouve que c'est un peu être méchant pour rien ce que tu dis Patrick45 car pour une première approche je trouve que ce site est vraiment bien fait.
Au moins ce site permet d'avoir une première approche de certains langages et cela me conviens parfaitement. Si par la suite je veux approfondir c'est sur qu'il faudra que j'aille voir ailleurs mais pour l'instant je suis pleinement satisfait de ces tutos.
Mais merci pour ton avis je le prends quand même en considération ;) 

Byebye
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS