Une boucle dans un switch, comment faire ?
adrihag
-
adrihag -
adrihag -
Bonjour,
Pour l'ecole j'ai un travail a rendre en C . il s'agit d'un pile ou face qui stocke les statistiques. On doit faire un menu pour :
1 jouer
2 reinitialiser les stats
3 voir les stat
4 arreter le prog
Voici mon code source :
Le problème c'est que j'aimerais faire une boucle pour demander au joueur s'il veut rejouer. Si oui, le "case 1" recommence, si non, le menu switch s'affiche. Je n'y arrive pas ! J'ai besoin d'aide :)
Merci d'avance à tous les CCM'iens !
Bonne soirée
Adrien
Pour l'ecole j'ai un travail a rendre en C . il s'agit d'un pile ou face qui stocke les statistiques. On doit faire un menu pour :
1 jouer
2 reinitialiser les stats
3 voir les stat
4 arreter le prog
Voici mon code source :
#include <stdlib.h> #include <stdio.h> #include <time.h> int main() { int choixmenu; int pile_face; int valeur_ordi; int partie_jouee = 0; int compteur_def = 0; int compteur_vict = 0; float pourcentage_vict = 0; char encore='o'; printf("===LE JEU DU PILE OU FACE===\n\n"); printf("1. Jouer\n"); printf("2. Reinitialiser les statistiques\n"); printf("3. Consulter les statistiques\n"); printf("4. Quitter le jeu\n"); printf("Quel est votre choix ?"); scanf("%d", &choixmenu); printf ("\n"); switch (choixmenu) { case 1: { partie_jouee++; printf ("\nEntrez 1 pour pile ou 2 pour face:"); scanf ("%d%*c",&pile_face); srand( time( NULL ) ); valeur_ordi=(rand() % 2)+1; printf ("La piece est tombee sur : %d \n",valeur_ordi); if (pile_face == valeur_ordi) { printf ("Vous avez gagne\n"); compteur_vict = compteur_vict +1; } else { printf ("Vous avez perdu\n"); compteur_def = compteur_def +1; } { printf("Jouer encore ? o / n?"); scanf("%c%*c",&encore); } break; } case 2: { partie_jouee = 0; compteur_def = 0; compteur_vict = 0; pourcentage_vict = 0; printf("===STATS REMISES A ZERO===\n\n"); printf("1. Jouer\n"); printf("2. Reinitialiser les statistiques\n"); printf("3. Consulter les statistiques\n"); printf("4. Quitter le jeu\n"); printf("Quel est votre choix ?"); scanf("%d", &choixmenu); } case 3: { printf("Voici vos statistiques\n\n"); printf("Parties jouees: %d\n\n",partie_jouee); printf("Parties gagnees: %d\n\n",compteur_vict); printf("Parties perdues: %d\n\n",compteur_def); pourcentage_vict=(((float)compteur_vict/(float)partie_jouee)*100); printf("Taux de reussite : %f \n\n", pourcentage_vict); printf("===LE JEU DU PILE OU FACE===\n\n"); printf("1. Jouer\n"); printf("2. Reinitialiser les statistiques\n"); printf("3. Consulter les statistiques\n"); printf("4. Quitter le jeu\n"); printf("Quel est votre choix ?"); scanf("%d", &choixmenu); break; } case 4: { printf ("Merci d'avoir joue avec moi !"); getchar(); getchar(); return 0; } } }
Le problème c'est que j'aimerais faire une boucle pour demander au joueur s'il veut rejouer. Si oui, le "case 1" recommence, si non, le menu switch s'affiche. Je n'y arrive pas ! J'ai besoin d'aide :)
Merci d'avance à tous les CCM'iens !
Bonne soirée
Adrien
A voir également:
- Switch boucle
- Android switch - Accueil - Android
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Logiciel switch - Télécharger - Conversion & Extraction
- Switch qwerty azerty - Guide
3 réponses
Salut adrihag,
Je suppose que tu peux faire quelque chose comme cela :
Donc, tu mets cela dans un while, le menu général dans le défaut du switch, et tu mets dans le case 1 un do / while pour répéter le jeu tant que l'utilisateur n'est pas fatigué.
Dal
Je suppose que tu peux faire quelque chose comme cela :
/* déclarer et initialiser les variables */ choixmenu = 0; while (choixmenu != 4) { switch (choixmenu) { case 1: do { encore = 'n'; /* faire 1 (jouer) */ /* demander si encore */ } while (encore == 'o'); choixmenu = 0; break; case 2: /* faire 2 */ choixmenu = 0; break; case 3: /* faire 3 */ choixmenu = 0; break; case 4: /* faire 4 (quitter) */ return 0; break; default: /* par défaut, afficher le menu et (re)demander choixmenu */ break; } } return 0;
Donc, tu mets cela dans un while, le menu général dans le défaut du switch, et tu mets dans le case 1 un do / while pour répéter le jeu tant que l'utilisateur n'est pas fatigué.
Dal
donc si je comprend bien :
il faut que tu initialises au début une variable de type char avec
char oui = 'o' par exemple
puis tant que char=='o' -> j'exécute case1
sinon -> menu switch
ça donnerait un truc de ce genre :
char oui = 'o';
while (oui=='o')
{
case 1;
oui = (le scanner pour que l'utilisateur entre sa oui ou non réponse)
}
affichage du menu switch
dsl je connais pas bien le C, j'utilise java mais ça y ressemble
il faut que tu initialises au début une variable de type char avec
char oui = 'o' par exemple
puis tant que char=='o' -> j'exécute case1
sinon -> menu switch
ça donnerait un truc de ce genre :
char oui = 'o';
while (oui=='o')
{
case 1;
oui = (le scanner pour que l'utilisateur entre sa oui ou non réponse)
}
affichage du menu switch
dsl je connais pas bien le C, j'utilise java mais ça y ressemble