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
- Switch 2 - Accueil - Jeu vidéo
- Logiciel switch - Télécharger - Conversion & Extraction
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