Partage
  • Partager sur Facebook
  • Partager sur Twitter

Organiser mon code !

J'en ai marre !

    13 juin 2006 à 16:43:10

    Bonjour !

    J'éspère que la question n'a jamais été posé ! :o
    Voila mon problème !

    Je suis en train de programmer un jeu en SDL, et le code commence à se compliquer.
    Il fait presque 500 lignes, ca devient vraiment le bazard !

    J'essais de mettre un max de truc dans les fichiers .h , mais le probleme, c'est que les variables ne sont plus trouvées si je les déplace etc.

    J'aimerai savoir quelles étaient les solutions pour se débarasser de tous les :

    ** = IMG_Load("***.bmp");
    //et
    position***.x = 0;
    position***.y = 0;


    de mon fichier principal sans faire foirer tout le programme ! :(


    Merci d'avance :)

    EDIT : j'ai bien lu les cours sur la programmation modulaire, mais Mateo explique juste comment dégager les fonctions , et les prototypes !
    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2006 à 17:31:29

      J'ai un fichier de 800 lignes et ma meilleur solution est de mettre énormément de commentaire, et d'indenter à max.
      (Ceci est ma solution :p )
      • Partager sur Facebook
      • Partager sur Twitter
        13 juin 2006 à 17:33:59

        Pareil !
        Mais j'ai au moins 100 lignes de Com', et ca commence a me souler :p
        • Partager sur Facebook
        • Partager sur Twitter
          13 juin 2006 à 17:36:47

          while(continuer)
          Oui mais si tu fais des appels à des fonctions qui se situent dans des fichiers différents c'est le gros bazar.( :p )

          ex: main.c appelle jeu.c qui appelle evenement.c qui appelle... qui appelle... c'est bien plus compliqué ça!
          (Ceci est ma solution :) )
          • Partager sur Facebook
          • Partager sur Twitter
            13 juin 2006 à 17:49:06

            Ma foi regarde le tp du mario sokoban : j'ai séparé les différentes parties de mon programmes dans plusieurs fichiers.
            • Partager sur Facebook
            • Partager sur Twitter

            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

              13 juin 2006 à 18:27:56

              Ok je vais voir ca merci ;)

              @Tib50 : Ouai c'est clair qu'il faut laisse tomber ca ;)
              Mais au moins ranger les variables ;)

              Edit : En fait, il faut que j'organise mieu mes variables, en les mettant dans les fonctions !

              Parce que , si je mets les fonctions dans un truc du genre "lesFonctions.c", le compilateur me dit qu'il trouve plus les variables !

              Mais si je mets les variables dans les fonctions, il va me dire qu'il trouve plus telles ou telles variables... >_<

              (tristesse de la vie ... )


              • Partager sur Facebook
              • Partager sur Twitter
                13 juin 2006 à 18:33:15

                Personnellement, pour l'un de mes projets j'ai ça :

                Citation : SRT

                Nombre de lignes de code : 1457
                Lignes vides : 534
                Lignes en commentaire : 1067
                Ligne avec du code ET un commentaire : 127
                Total de lignes : 3185


                J'ai 18 fichiers différents, et de la documentation générée par Doxygen. Et ben là, tu t'y retrouves très bien !
                • Partager sur Facebook
                • Partager sur Twitter
                  13 juin 2006 à 18:34:47

                  Ouai mais t'as 18 fichiers !

                  Moi j'en ai que un petit, et un avec les prototypes >_<
                  (plus le main.c ;) ! )
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 juin 2006 à 19:12:44

                    a toi de les séparer en fichier, si j'ai bien vu, certains des fichiers de remrem44 ne contiennent que deux fonction (ou la definition d'une classe pour l'un (c++))
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 juin 2006 à 19:34:50

                      Ouai faut absolument que je m'y mette.
                      Mais le plus gros probleme, c'est la porté des variables :(
                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 juin 2006 à 20:06:57

                        Ne pas oublier le spécificateur extern !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 juin 2006 à 20:11:01

                          extern permet de déclarer une variable dans un .c et de pouvoir la modifier dans un autre fichier.

                          Cela allègerais ton code d'un fichier de par ce fait.

                          syntaxe :
                          extern int machin;
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 juin 2006 à 20:12:20

                            Lorsque tu veux utiliser une variable déclarée dans un autre fichier ou après l'utilisation en question, tu dois la redéclarer avec le spécificateur extern.

                            Par exemple :

                            extern int nb;
                            extern char* s;
                            extern long (*f)();
                            /* etc */
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 juin 2006 à 20:13:00

                              Ca me permet d'utiliser une variable dans plusieurs fonction?
                              Ou c'est à l'échelle d'un fichier .c ?


                              Edit : Et quand je déclare en extern, c'est dans le fichier .c désigné, ou dans le main?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 juin 2006 à 20:13:09

                                Grilled mleg :p

                                Nonnonon on vient de le dire ... tu peux faire ceci :

                                Functions.c
                                extern int machin;
                                //declaration


                                Main.c
                                machin = 2;
                                //utilisation


                                mleg -> Pas la peine de lui encombrer la tête avec des pointeurs de fonctions ;)

                                [EDIT] Tu peux déclarer en extern dans tous les fichiers .c .. cela permet seulement de l'utiliser dasn tous tes fichiers source. (vice versa)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 juin 2006 à 20:15:46

                                  Citation : Patou


                                  Je suis en train de programmer un jeu en SDL, et le code commence à se compliquer.
                                  Il fait presque 500 lignes, ca devient vraiment le bazard !


                                  http://mapage.noos.fr/emdel/codage.htm
                                  http://mapage.noos.fr/emdel/tad.htm
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Music only !
                                    13 juin 2006 à 20:17:33

                                    Super merci !
                                    Et merci pour tes liens -ed- , je vais y jeter un coup d'oeil :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 juin 2006 à 20:17:38

                                      En fait on devrait mettre ton site en post it :lol: On doit trop se répéter ^^
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        13 juin 2006 à 20:31:26

                                        Tu ferais mieux de mettre au moins 3 fichiers dans ton projet:
                                        - main.c : Le fichier qui contient la fonction main ( minimum de code ).
                                        - fichier.h : Prototypes de fonctions.
                                        - fichier.c : Tes fonctions ( jouer, évènements, etc... ).
                                        Je le fais avec mon jeu de pong et ça marche très bien ( pour le moment :D )
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          13 juin 2006 à 20:36:36

                                          Citation : oussama1305

                                          Tu ferais mieux de mettre au moins 3 fichiers dans ton projet:
                                          - main.c : Le fichier qui contient la fonction main ( minimum de code ).
                                          - fichier.h : Prototypes de fonctions.
                                          - fichier.c : Tes fonctions ( jouer, évènements, etc... ).
                                          Je le fais avec mon jeu de pong et ça marche très bien ( pour le moment :D )


                                          C'est effectivement un bon départ. Mais ensuite, il faut aller plus loin et organiser en blocs fonctionnels, séparer les algorithmes des I/O etc.

                                          Et le plus important : travailler par contextes (structures) afin de bannir définitivement les globales.

                                          En fait, c'est autour de ces structures que le code s'organise 'tout seul'...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Music only !
                                            13 juin 2006 à 20:37:32

                                            En C++, on conseille de ne pas utiliser de globales du tout, c'est d'ailleurs le cas dans mon code. Je suppose qu'il y a des recommendations similaires en C, non ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              13 juin 2006 à 21:01:02

                                              Moi dans mon jeu perso j'ai 11 fichiers, séparer pour les différentes phases du jeu :
                                              main
                                              combat
                                              actions perso
                                              actions adversaires
                                              ...
                                              Et je m'y retrouve très bien !
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                14 juin 2006 à 14:21:29

                                                Citation : remram44

                                                En C++, on conseille de ne pas utiliser de globales du tout, c'est d'ailleurs le cas dans mon code. Je suppose qu'il y a des recommendations similaires en C, non ?



                                                Oui ;)

                                                Et pour ce qui est de mon organisation, je viens de creer un truc ennemis.c ou se trouvent toutes les fonctions qui gerent les ennemis etc...

                                                Petit à petit, l'oiseau fait son nid :ange:

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  15 juin 2006 à 7:52:16

                                                  On peu mettre plusieurs fonctions dans un fichier .h ?

                                                  Question stupid j'imagine ^^
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    15 juin 2006 à 8:15:48

                                                    Citation : Stealkillandhide

                                                    On peu mettre plusieurs fonctions dans un fichier .h ?


                                                    Techniquement tout est possible. Sur le plan pratique, on ne fait pas ça ([C99] sauf inline)

                                                    http://mapage.noos.fr/emdel/codage.htm#organiser_source
                                                    http://mapage.noos.fr/emdel/codage.htm#organiser
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Music only !

                                                    Organiser mon code !

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown