Jeu du hasard

Emmanuel_Ndjokende Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je viens de faire un petit jeu en C dans le quel l'ordinateur demande le chiffre a l'utilisateur mais comment ecrire des codes sources qui permettra d'aider l'utilisateur de choisir s'il veut quitter ou rester dans le jeu? s'il dit oui il quitte sinon l'utilisateur reste


A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Une simple boucle while est suffisante.
Tant que l'utilisateur dit oui, tu reboucles.

Cdlt,
0
paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention   25
 
Toutafé.

En l'occurence plutôt une do...while, vu qu'en toute logique l'utilisateur jouera au moins une fois (en plus les boucles do...while sont un shouïa plus rapides que les boucles while après compilation).

Perso je pense que je ferais plutôt un goto pour revenir en arrière (introduit à partir du C99 je crois), mais certains le déconseillent (je ne saisis toujours pas pourquoi). Tu choisis.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention  
 
goto introduit à partir du C99 ???
Du tout. Cela existe depuis le début...
De plus, comme tu le dis c'est déconseillé car cela casse l'algorithmie. Une bonne boucle while() (ou do while() si tu veux), est largement préconisé. Cela permettra au compilateur d'optimiser le code en reconnaissant des patterns algorithmiques. Avec le goto, c'est plus délicat.
0
paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention   25
 
goto introduit à partir du C99 ??? Du tout. Cela existe depuis le début...
C'est bien ce que j'avais dit: "je crois".

Le compilateur se débrouille très bien avec le goto, tout simplement parce que c'est une instruction native du CPU.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bien ce que j'avais dit: "je crois".
Yep, mais comme tu es sur un forum et que d'autres personne peuvent lire, il vaut mieux corriger lorsqu'une personne se trompe.

Le compilateur se débrouille très bien avec le goto, tout simplement parce que c'est une instruction native du CPU.
Je n'ai pas dit que le compilateur ne se débrouillait pas, mais que le compilateur était moins efficace en optimisation algorithmique avec un goto. C'est différent...
0
Utilisateur anonyme
 
Bonsoir,

Une solution simple est :

int sortie = 0;
while(sortie == 0)
{
   //TON JEU

  printf("Recommencer ?");
  printf("0. Oui 1. Non");
  scanf("%d", &sortie);
  if(sortie != 0) return 0;
}

0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu peux faire encore plus simple, en supprimant la ligne if (sortie != 0).
La boucle s'arrêtera toute seule au vu de la condition.
0
Utilisateur anonyme > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bien vu ;-)
0
Utilisateur anonyme
 
Donc après correction ça serrait plutôt ça :

while(sortie == 0)
{
   //TON JEU

  printf("Recommencer ?");
  printf("0. Oui 1. Non");
  scanf("%d", &sortie);
}


A mettre dans le main bien sur !
0
paly2 Messages postés 254 Date d'inscription   Statut Membre Dernière intervention   25
 
Une boucle do...while serait plus logique (bien qu'en théorie le compilateur devrait automatiquement optimiser ta boucle while en boucle do...while) :
int sortie = 0;
do {
    //TON JEU

    printf("Recommencer ? 0. Oui 1. Non");
    scanf("%d", &sortie);
} while (!sortie);
0