Amélioration d'un code source

Fermé
arthurbest78 Messages postés 66 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 26 juin 2014 - Modifié par arthurbest78 le 18/04/2010 à 11:39
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 19 avril 2010 à 11:56
#include <stdio.h>      
#include <stdlib.h>      
#include <time.h>      

int main ()      

{      
    int choixMode;      

    printf("A combien de joueur voulez-vous jouer (1 ou 2) ? ");      
    scanf("%d", &choixMode);      
    system("cls");      


    if (choixMode == 1)      
    {      
    int choixNiveau;      

    printf("Quel niveau voulez vous choisir ? \n\n");      
    printf("Niveau 1, entre 1 et 10 \n");      
    printf("Niveau 2, entre 1 et 100 \n");      
    printf("Niveau 3, entre 1 et 1000 \n");      
    printf("Niveau 4, entre 1 et 10000 \n");      
    printf("Niveau 5, entre 1 et 100000\n\n");      
    printf("Je veux jouer au niveau ");      
    scanf("%d", &choixNiveau);      
    system("cls");      

    int max = 10, min = 1;      
    int nombreMystere = 0, nombreEntre = 0;      

    switch(choixNiveau)      
    {      
        case 1:      
            max = 10;      
            break;      
        case 2:      
            max = 100;      
            break;      
        case 3:      
            max = 1000;      
            break;      
        case 4:      
            max = 10000;      
            break;      
        case 5:      
            max = 100000;      
            break;      
        default:      
            printf("Votre Nombre est incorrect");      
            break;      
    }      
            int nombreDeCoups1 = 0;      

    srand(time(NULL));      
    nombreMystere = (rand() % (max - min + 1)) + min;      
    do      
    {      
        printf("Quel est le nombre ? ");      
        scanf("%d", &nombreEntre);      
        nombreDeCoups1++;      
        if (nombreMystere > nombreEntre)      
        printf("C'est plus !\n\n");      
        else if (nombreMystere < nombreEntre)      
        printf("C'est moins !\n\n");      
        else      
        printf ("Bravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", nombreDeCoups1);      
    } while (nombreEntre != nombreMystere);      

}      

   else if (choixMode == 2)      

   {      
     int nombreMystere;      
     int choixNombre;      
     printf("Pour information le Joueur 1 ecrit un nombre et le Joueur 2 cherche le nombre.\n\n");      
     printf("Joueur 1 veuillez donner un indice au Joueur 2 du type suivant: le nombre se trouve entre 1 et 100\n");      
     printf("trouve entre 1 et 100\n\n");      
     printf("Joueur 1 veuiller ecrire votre nombre et retenez le !\n\n");      
     printf("Mon nombre est le ");      
     scanf("%d", &nombreMystere);      
      system("cls");      

       int nombreDeCoups2 = 0;      

     do      
    {      
        printf("Joueur 2, vous devez trouver le nombre du Joueur 1\n");      
        printf("Quel est le nombre ? ");      
        scanf("%d", &choixNombre);      
        nombreDeCoups2++;      
        if (choixNombre > nombreMystere)      
        printf("C'est moins !\n\n\n");      
        else if (choixNombre < nombreMystere)      
        printf("C'est plus !\n\n\n");      
        else if (choixNombre == nombreMystere)      
        printf ("Bravo, Joueur 2 a trouve le nombre mystere en %d coups !!!\n\n", nombreDeCoups2);      
    } while (choixNombre != nombreMystere);      

  }      
  system("pause");      
  return 0;      

}      

--------------------------------------------------------------------------------

Bonjour, je voudrai amélioré ce script

amélioration voulues :

°naviguer dans le menu (ex. je vais dans 2 joueur, je me trompe, pouvoir revenir en arrière)

°à la fin du programme demander si il veut faire une nouvelle partis

Voila je cherche depuis une journée et je ne trouve pas alors sa serai cool si vous trouver. ;)
Merci, cordialement Arthur


A voir également:

1 réponse

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
19 avril 2010 à 11:56
Voici déjà j'ai amélioré ton programme en ne séparant dans les if du choixMode que les parties nécessitant d'être séparées, le jeu en soit même se déroule après et est commun aux deux modes de jeux.

Si l'utilisateur entre autre chose que 1 ou 2 ça quitte le programme car on passe dans le else et on dit "Au revoir".

Et sinon ça lui propose à chaque fois de rejouer car tout le programme est dans un do { ... } while(1 == 1); qui est toujours vrai donc qui boucle à l'infini.

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

int main ()
{
    do
    {
        int choixMode;
        system("cls");
        printf("A combien de joueur voulez-vous jouer (1 ou 2, 0 pour quitter) ? ");
        scanf("%d", &choixMode);
        system("cls");


        int nombreMystere = 0, nombreEntre = 0;
        int min = 1, max = 10;

        if (choixMode == 1)
        {
            int choixNiveau;

            printf("Quel niveau voulez vous choisir ? \n\n");
            printf("Niveau 1, entre 1 et 10 \n");
            printf("Niveau 2, entre 1 et 100 \n");
            printf("Niveau 3, entre 1 et 1000 \n");
            printf("Niveau 4, entre 1 et 10000 \n");
            printf("Niveau 5, entre 1 et 100000\n\n");
            printf("Je veux jouer au niveau ");
            scanf("%d", &choixNiveau);
            system("cls");

            switch(choixNiveau)
            {
                case 1:
                    max = 10;
                    break;
                case 2:
                    max = 100;
                    break;
                case 3:
                    max = 1000;
                    break;
                case 4:
                    max = 10000;
                    break;
                case 5:
                    max = 100000;
                    break;
                default:
                    printf("Votre Nombre est incorrect");
                    break;
            }
            // on génére le nombre mystère aléatoirement
            nombreMystere = (rand() % (max - min + 1)) + min;
        }
        else if (choixMode == 2)
        {
            printf("Pour information le Joueur 1 ecrit un nombre et le Joueur 2 cherche le nombre.\n\n");
            printf("Joueur 1 veuillez donner un indice au Joueur 2 du type suivant: le nombre se trouve entre 1 et 100\n");
            printf("trouve entre 1 et 100\n\n");
            printf("Joueur 1 veuiller ecrire votre nombre et retenez le !\n\n");
            printf("Mon nombre est le ");
            scanf("%d", &nombreMystere);    // on lit le nombre mystère
            system("cls");
        }
        else
        {
            // Si l'utilisateur entre autre chose on quitte
            printf("Au revoir !\n");
            return 0;
        }

        int nombreDeCoups1 = 0;
        srand(time(NULL));
        do
        {
            printf("Quel est le nombre ? ");
            scanf("%d", &nombreEntre);
            nombreDeCoups1++;
            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
                printf ("Bravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", nombreDeCoups1);
        } while (nombreEntre != nombreMystere);
        system("pause");
    } while(1 == 1);    // boucle infinie car 1 est toujours égal à 1
}

0