Score en mémoire [Résolu]

phoenixgreg 77 Messages postés mardi 17 novembre 2009Date d'inscription 18 août 2015 Dernière intervention - 30 nov. 2010 à 10:51 - Dernière réponse : phoenixgreg 77 Messages postés mardi 17 novembre 2009Date d'inscription 18 août 2015 Dernière intervention
- 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 !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscription 6 octobre 2018 Dernière intervention - 30 nov. 2010 à 14:27
3
Merci
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

Merci cptpingu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cptpingu
cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscription 6 octobre 2018 Dernière intervention - 30 nov. 2010 à 10:58
0
Merci
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
Commenter la réponse de cptpingu
phoenixgreg 77 Messages postés mardi 17 novembre 2009Date d'inscription 18 août 2015 Dernière intervention - 30 nov. 2010 à 11:06
0
Merci
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.
Commenter la réponse de phoenixgreg
cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscription 6 octobre 2018 Dernière intervention - 30 nov. 2010 à 11:42
0
Merci
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
Commenter la réponse de cptpingu
phoenixgreg 77 Messages postés mardi 17 novembre 2009Date d'inscription 18 août 2015 Dernière intervention - 30 nov. 2010 à 14:23
0
Merci
Je suis désolé je ne comprend pas ton exemple :s pourquoi tu déclares deux fois score ?
Commenter la réponse de phoenixgreg
phoenixgreg 77 Messages postés mardi 17 novembre 2009Date d'inscription 18 août 2015 Dernière intervention - 30 nov. 2010 à 14:41
0
Merci
Ah oui ok ! en fait il faut également que le score s'additionne à chaque fin de niveau.
Commenter la réponse de phoenixgreg

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.