Programmes un jeux en c

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. 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 !
    1. Contributeur
      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.
  2. Contributeur
    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;
    }
    
    1. 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);
      }
      
      1. Contributeur
        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
    2. 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;
      }
      1. 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;
        }
        1. oké merci. je risque de revenir car je pense pas que se sera mondérnier pb
          1. Contributeur
            Et la syntaxe est juste. Si bien entendu force est une variable globale.
            1. 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