Programmes un jeux en c

farcry165 -  
chico200987 Messages postés 856 Statut Membre -
Bonjour, je voudrais faire un jeux comme the crims (boncou plus petit) mais mon premier pb c que j'ai besoin de faire des variable qui augmente d'un nombre prisse exemple "long force=5 et je voudrais quand fessent une action style un braquage la variable augmente de 5 a 8,5"
Configuration: Windows Vista
Firefox 3.0.9

9 réponses

  1. luc648 Messages postés 604 Statut Membre 117
     
    dans ta fonction braquage tu fais

    function braquage(){

    long_force = long_force + 3,5;

    }

    je ne sais plus si la syntaxe est juste en C mais l'idée est correcte
    1
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Et la syntaxe est juste. Si bien entendu force est une variable globale.
    0
  3. farcry165
     
    oké merci. je risque de revenir car je pense pas que se sera mondérnier pb
    0
  4. farcry165
     
    re bonjour voila je n'est pas réussi utiliser la ligne de code que ma donné luc648 je ne sais pas ou la placer dans mon programmes (ce n'est que le débu)

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    double bracage()
    {
    double force = 7;
    if (force >5)
    force++;//j'ai mi force++ car je quand j'ai mis long_force = long_force + 3,5 sa na pas marché
    else
    printf("entole!!!!");
    return force;
    }

    int main(int argc, char *argv[]){

    printf ("%lf",bracage());

    getchar();// à la place du system("pause") il fo utiliser getchar() aussi non sa ne marche pas
    return 0;
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. farcry165
     
    exusé moi je navé pas bien compri la premiere réponse voila mais code

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    double bracage()
    {
    double force = 7;
    if (force >5)
    force = force +5;
    else
    printf("entole!!!!");
    return force;
    }

    int main(int argc, char *argv[]){

    printf ("%lf",bracage());

    getchar();// à la place du system("pause") il fo utiliser getchar() aussi non sa ne marche pas
    return 0;
    }
    0
  7. chico200987 Messages postés 856 Statut Membre 144
     
    Le probleme dans ton code c'est qu'a chaque fois que tu appelles ta fonction braquage() sa valeur sera reinitialisee a 7.. et vaudra toujours 12 a la sortie. Il faut donc la declarere en global..

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    global double force = 7;
    
    double bracage()
    {
       if (force > 5)
          force += 5; /* C'est la meme chose que force = force + 5; */
       else
         printf("En tole !");
       return force;
    }
    
    int main(int argc, char *argv[])
    {
       printf ("%lf", bracage());
       getchar();
       return (1);
    }
    
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Salut,
      global double force = 7;
      global n'existe pas en C.

      return (1);
      Il faut retourner 0 lorsque tout va bien.

      printf ("%lf", bracage());
      Pour afficher un double, on utilise %f et non %lf.

      Cdlt
      0
  8. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Le mieux est de passer la variable par adresse.

    #include <stdio.h>
    
    double bracage(double *force)
    {
       if (*force > 5)
          *force += 5; /* C'est la meme chose que force = force + 5; */
       else
         printf("En tole !\n");
    
       return *force;
    }
    
    int main(void)
    {
       double force=7;
       printf ("%f", bracage(&force));
        /* force a été modifié.
    
       getchar();
       return 0;
    }
    
    0
  9. chico200987 Messages postés 856 Statut Membre 144
     
    Encore faut-il faire attention aux pointeurs...

    Pour completer mon alternative on peut enlever le global et rajouter extern pour pouvoir l'utiliser partout !

    Reste a savoir laquelle des deux te conviendrait le mieux !
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      on peut enlever le global
      global n'existe pas tout court.

      et rajouter extern pour pouvoir l'utiliser partout !
      Non. Pour faire une variable "globale" avec une portée au-delà du fichier, un simple double force; défini en dehors de tout scope suffit. L'usage du mot-clé extern est utilisé explique au compilateur que la variable a déjà été déclarée (disponible dans la table des symboles) dans un autre fichier.
      Mais l'usage de variables globales est déconseillée.
      0
  10. chico200987 Messages postés 856 Statut Membre 144
     
    Merci des precisions alors !
    0