Jeu sur console, crash: où est l'erreur?

Fermé
Anne-Nonime Messages postés 28 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 27 mars 2016 - Modifié par Anne-Nonime le 7/03/2015 à 20:26
Anne-Nonime Messages postés 28 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 27 mars 2016 - 8 mars 2015 à 20:05
Bonjour,
Hier j'ai décider de commencer à apprendre la programmation en C (donc vous pouvez le devner, je n'ai que très peu de connaissance) j'ai très peu d'expérience en la matière mais malgré tout j'ai tenter des faire un jeu. Mais quand je le met, après avoirs entrer le niveau, il ne se passe... rien. J'ai beau chercher je ne trouve pas d'erreur comment faire?:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int MAX = 0, MIN = 1, nombreMystere = 0, entrerDuJoueur = 0;
    int compteur = 0, rejouer = 0, nombreDeJoueur = 0, debuterLaPartie = 0, niveau = 0;
do
{
    compteur = 0;
    printf("\n                        *******-Plus ou moins, le jeu-*******\n\n\n\n\n");

    char prenom[100];

    printf("Comment t'appelles-tu?\n\n                      ");
    scanf("%s", prenom);


    printf("\n\nSalut %s!\n\n\n Seras-tu capable de trouver le nombre mystere?\n\n\n\n", prenom);//Menut du début
    printf("--Choisie ton mode de jeux--\n\n\n\n");//Menut du début

    printf("1-Solo\n");
    printf("2-Multijoueur\n\n                                                           ");
    scanf("%d", &nombreDeJoueur);

    if (nombreDeJoueur == 2)//Partie multi
    {
        printf("\n\n\n\n\nAppuyer sur un chiffre pour debuter la partie \n\n\n");//Partie multi
        scanf("%d", &debuterLaPartie);
        printf("\n\nJoueur 1, veuillez inserez un nombre entre 1 et 100:                 ");//Partie multi
        scanf("%d", &nombreMystere);//Partie multi
        printf("\n\n\n\n\n\n\n\n\n\n\n\n\nJoueur 2 c'est a vous de jouer\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

    }
    else if (nombreDeJoueur == 1)//Partie Solo
    {
        printf("Mieux vaut etre seul que mal accompagner n'est-ce pas?\n\n");//Partie Solo

    }

    printf("Choisi un niveau:\n\n");
    printf("\n\nNiveau 1:           --entre 1 et 100----\n\n");
    printf("Niveau 2:           --entre 1 et 1 000---\n\n");
    printf("Niveau 3:           --entre 1 et 10 000--\n\n\n");
    scanf("%d", &niveau);
    printf("\n\n\n\n");
    scanf("\n%d",&niveau);

        switch(niveau)
    {
    case 1:
        MAX=100;
        break;
    case 2:
        MAX=1000;
        break;
    case 3:
        MAX=10000;
        break;
    default:
        printf("Niveau non reconnu. Je choisis pour vous le niveau 2 (entre 1 et 1000).\n");
        MAX=1000;
        break;
    }
    srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

    do
    {
        printf("Quel est le nombre mystere?                                       ");
        scanf("%d", &entrerDuJoueur);

        if (entrerDuJoueur < nombreMystere)
        {
            printf("C'est plus!\n\n");
            compteur ++;
        }
        else if (entrerDuJoueur > nombreMystere)
        {
            printf("C'est moins!\n\n");
            compteur ++;
        }
        else
        {
           printf("\n\n~~Bravo! c'est gagner!~~\n\n\n");
           printf("\n Tu as gagner en %d coups\n\n", compteur);
        }
   }while(nombreMystere != entrerDuJoueur);

printf("Rejouer? Entre 1 pour oui 2 pour non \n\n");
scanf("%d", &rejouer);




}while (rejouer != 2);

return 0;

}
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mars 2015 à 22:21
Bonjour,

ital>printf("Comment t'appelles-tu?\n\n "); </ital>
Note : tu peux mettre des \t pour ajouter des tabulations au lieu de mettre autant d'espaces.

Note : tu traites le cas où nombreDeJoueur vaut 1 ou 2. Mais si c'est différent, tu ne fais rien. De plus, je ne vois pas la différence entre les deux modes...

scanf("\n%d",&niveau);
Pas de "\n" dans le scanf().

Note : attention à la régularité dans l'indentation.

Cdlt,
0
Anne-Nonime Messages postés 28 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 27 mars 2016
8 mars 2015 à 10:11
Merci, j'ai corriger les défauts mais ça crash toujours :/
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
8 mars 2015 à 13:50
Bizarre que ça crash... T'as pas mis un prénom de plus de 100 caractères ?

Sinon, je viens de voir que tu as deux : scanf("%d",&niveau);. Il faut que tu en retires un. Mais bon, ce n'est pas de là que vient le problème.

Recréé un projet et copie-colle ton programme pour repartir d'un truc propre. En tout cas, il n'y a pas d'erreur dans ton programme.
0
Anne-Nonime Messages postés 28 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 27 mars 2016
8 mars 2015 à 20:05
J'ai beau copier coller le code ça crash toujours :-/
0