Jeu du hasard

Fermé
Emmanuel_Ndjokende Messages postés 1 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 25 mai 2016 - 25 mai 2016 à 06:34
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 - 3 juin 2016 à 07:03
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
25 mai 2016 à 10:14
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 vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
1 juin 2016 à 18:14
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843 > paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018
1 juin 2016 à 22:58
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 vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
2 juin 2016 à 14:44
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843 > paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018
2 juin 2016 à 21:30
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
2 juin 2016 à 21:48
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
2 juin 2016 à 21:50
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
2 juin 2016 à 21:51
Bien vu ;-)
0
Utilisateur anonyme
2 juin 2016 à 21:54
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 vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
3 juin 2016 à 07:03
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