Score en mémoire

Résolu
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015 - 30 nov. 2010 à 10:51
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015 - 30 nov. 2010 à 14:41
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
30 nov. 2010 à 14:27
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
30 nov. 2010 à 10:58
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
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
30 nov. 2010 à 11:06
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.
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
30 nov. 2010 à 11:42
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
30 nov. 2010 à 14:23
Je suis désolé je ne comprend pas ton exemple :s pourquoi tu déclares deux fois score ?
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
30 nov. 2010 à 14:41
Ah oui ok ! en fait il faut également que le score s'additionne à chaque fin de niveau.
0
Rejoignez-nous