Score en mémoire [Résolu]

Signaler
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015
-
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015
-
Bonjour tout le monde,

j'ai besoins de vos lumière, je suis tj sur le même jeu depuis 2 semaine, un jeu de bonneteau.
Bref, le joueur doit séléctionner le bon gobelet (là où se trouve la bille) à chaque niveau. Et pour cela j'ai mis en place un système qui compte le nombre d'essai et le score à la fin, le score étant calculé comme ceci :

score = 50 - 2 * nombrecoups;
printf("Bravo, Vous avez trouve la bille rouge en %d coups, niveau suivant !! Niveau 3 !\n\nVotre score est maintenant de : %d\n\n", nombrecoups, score);


Le problème est que je ne vois pas comment garder ce score en mémoire quand je passe aux niveaux suivants, c'est surement une histoire de pointeur mais je n'y connais pas grand chose :(

Merci pour votre aide en tt cas !

6 réponses

Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Ce sont des exemples différents.

Un exemple plus complet (attention non testé):

int lvl1(int score)
{
  [...]
  score = ...

  return score;
}

int lvl2(int score)
{
  [...]
  score = ...

  return score;
}

int lvl3(int score)
{
  [...]
  score = ...

  return score;
}

int main(void)
{
  int score = 0;
  score = lvl1(score);
  score = lvl2(score);
  score = lvl3(score);
  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Pas besoin de pointeur.
J'ai du mal à cerner ton problème, le score doit être simplement mis dans une variable.

Poste ton code, il sera plus facile de t'aider.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

Et bien j'ai fait un fichier.c pour chaque niveau alors que rien ne change à part qu'il y a un gobelet à choisir en moins. Il y a en tt 9 niveau, lvl1= 10 gobelets --> lvl9 = 2 gobelets.

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


int lvl1()
{

  int nombrecoups = 1;
  int score = 50 - 2 * nombrecoups;
  int choix = 0;
  int billerouge = 0;
  int billenoire = 0;

// Génération du nombre aléatoire pour la billerouge et billenoire

    srand (time (NULL));

    billerouge=(rand()%10)+1;
    do{
        billenoire=(rand()%10)+1;
      }while(billenoire==billerouge);
      
  
  textcolor(28);puts("********************************************************************************");
  textcolor(28);puts("***                                NIVEAU 1                                  ***");
  textcolor(28);puts("********************************************************************************\n");

  
    textcolor(14); //JAUNE
    gotoxy(10,9);puts("***");
    gotoxy(10,10);puts("*1*");
    gotoxy(10,11);puts("***");
    
    gotoxy(15,9);puts("***");
    gotoxy(15,10);puts("*2*");
    gotoxy(15,11);puts("***");
    
    gotoxy(20,9);puts("***");
    gotoxy(20,10);puts("*3*");
    gotoxy(20,11);puts("***");
    
    gotoxy(25,9);puts("***");
    gotoxy(25,10);puts("*4*");
    gotoxy(25,11);puts("***");
    
    gotoxy(30,9);puts("***");
    gotoxy(30,10);puts("*5*");
    gotoxy(30,11);puts("***");
    
    gotoxy(35,9);puts("***");
    gotoxy(35,10);puts("*6*");
    gotoxy(35,11);puts("***");
    
    gotoxy(40,9);puts("***");
    gotoxy(40,10);puts("*7*");
    gotoxy(40,11);puts("***");
    
    gotoxy(45,9);puts("***");
    gotoxy(45,10);puts("*8*");
    gotoxy(45,11);puts("***");
    
    gotoxy(50,9);puts("***");
    gotoxy(50,10);puts("*9*");
    gotoxy(50,11);puts("***");
    
    gotoxy(55,9);puts("***");
    gotoxy(55,10);puts("*10*");
    gotoxy(55,11);puts("***\n\n");
    textcolor(15); //BLANC
    
       // On demande ou se trouve la bille rouge
       puts("Veuillez entrer le numero du gobelet :\n");
       
       /* La boucle du programme. Elle se répète tant que l'utilisateur
    n'a pas trouvé la billerouge */
       
       do 
       {   
         // On demande le numero du gobelet
         textcolor(15),scanf("%d", &choix);
         
         //On regarde si le numero du gobelet correspond a celui de la bille rouge
         if (choix < billerouge && choix < billenoire)
         {
         textcolor(12),printf("-->\n\n");
         textcolor(8),printf("-->\n\n");
         nombrecoups++;}
         else if (choix < billerouge && choix > billenoire)
         {
         textcolor(12),printf("-->\n\n");
         textcolor(8),printf("<--\n\n");
         nombrecoups++;}
         else if (choix > billerouge && choix < billenoire)
         {
         textcolor(12),printf("<--\n\n");
         textcolor(8),printf("-->\n\n");
         nombrecoups++;}         
         else if  (choix > billerouge && choix > billenoire)
         {
         textcolor(12),printf("<--\n\n");
         textcolor(8),printf("<--\n\n");
         nombrecoups++;}
         else if (choix == billerouge)
         {
         
         textcolor(10),printf("Bravo, Vous avez trouve la bille rouge en %d coups, niveau suivant !! Niveau 2 !\n\nVotre score est maintenant de : %d\n\n", nombrecoups, score);
         textcolor(15);
         system("pause"); 
         clrscr();
         lvl2();}
         }while (choix != billenoire);
   
         
         textcolor(8),printf("Dommage, vous etes tombe sur la noire, le niveau recommence !!!\n\n");
         textcolor(15);
         system("pause");
         clrscr();
         lvl1();

  return 0;
}




Et donc j'aimerais savoir quand le programme switchera sur le fichier lvl2(); comment garder le score précédent.
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
C'est bizarre comme architecture... Mais bon, ce n'est pas la question :)

Tu passes simplement le score à l'aide de tes fonctions.
Tu fais des fonctions: "int lvl1(int score);", de manière à ce que le score soit obligatoire.

Ex:
int score = lvl1(0);
score = lvl2(score);

int lvl1(int score)
{
[...]
system("pause");
clrscr();
score = lvl1(score);
[...]
return score;
}

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

Je suis désolé je ne comprend pas ton exemple :s pourquoi tu déclares deux fois score ?
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

Ah oui ok ! en fait il faut également que le score s'additionne à chaque fin de niveau.