IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

R�duction de code


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Mai 2014
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Par d�faut R�duction de code
    Bonjour � tous , je code un comparateur de caract�ristiques pour un jeu nomm� Dofus.
    Je compte charg� tout les items contenant les caract�ristiques et donc je ne les �crit pas en dure dans le code pour �viter de devoir recompiler � chaque ajouts.
    Voici mon code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    #ifndef Stat_included
    #define Stat_included
     
    class Stat
    {
    public:
     
        Stat( int v, int i, short w, short e, short f, short wa, short a, short p, short ac, short m, short pr, short r, short in, short d, short dn, short de, short df, short dw, short da, short dc,
              short dp, short rn, short re, short rf, short rw, short ra, short rfn, short rfe, short rff, short rfw, short rfa, short apr, short mpr, short apd, short mdp, short h, short ch,
              short t, short l );
     
    private:
     
        int const stat_vitality;
        int const stat_initiative;
        short const stat_wisdom;
        short const stat_earth;
        short const stat_fire;
        short const stat_water;
        short const stat_air;
        short const stat_power;
        short const stat_actions;
        short const stat_movements;
        short const stat_prospecting;
        short const stat_reach;
        short const stat_invocation;
        short const stat_damage;
        short const stat_damage_neutral;
        short const stat_damage_earth;
        short const stat_damage_fire;
        short const stat_damage_water;
        short const stat_damage_air;
        short const stat_damage_critical;
        short const stat_damage_pushback;
        short const stat_resistance_neutral;
        short const stat_resistance_earth;
        short const stat_resistance_fire;
        short const stat_resistance_water;
        short const stat_resistance_air;
        short const stat_resistance_fixed_neutral;
        short const stat_resistance_fixed_earth;
        short const stat_resistance_fixed_fire;
        short const stat_resistance_fixed_water;
        short const stat_resistance_fixed_air;
        short const stat_actions_point_reduction;
        short const stat_movements_point_reduction;
        short const stat_actions_point_dodge;
        short const stat_movements_point_dodge;
        short const stat_heal;
        short const stat_critical_hit;
        short const stat_tackle;
        short const stat_leak;
     
    };
     
    #endif //Stat_included
    Ce n'est pas une erreur en soient mais le probl�me est que le constructeur est beaucoup trop long. Y'a-t-il une possibilit� de r�duire ce code ? Je vous remercie

  2. #2
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Salut tu peux peut-�tre d�couper ta structure en sous structures? (BaseStats, DamageStats, ResistanceStats, ...) et avoir une structure qui les chapeauterait?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Etant donn� que toutes ces stats sont particuli�res et n'ont rien � voir entres elles, tu finiras fatalement par toutes les �crire.
    Tu peux les d�couper comme dit ci-dessus, mais �a ne changera strictement rien au fait que tu dois toutes les �crire...
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  4. #4
    Membre �m�rite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par d�faut
    Tu peux faire une std::map< std::string, int > o� tu rajoutes tes stats:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    std::map< std::string, int > stats;
     
    stats[ "v" ] = 1;
    stats[ "i" ] = 50;
    etc..

    tu peux la rajouter dans ta classe stats. Et faire des fonctions genre

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    void Stat::addStat( const std::string  & statName, int value )
    {
        this->statlist_[ statName ] = value;
    }
    Tu peux les charger dynamiquement depuis un fichier du coup, et effectivement, t'auras rien � compiler si tu en rajoutes une.

  5. #5
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par d�faut
    En g�n�ral on a tout de m�me besoin de sp�cifier une valeur par d�faut pour le param�tre. On peut certes choisir une valeur arbitraire et l'appliquer � tout le monde, mais pas s�r qu'elle convienne � tous les param�tres...

  6. #6
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    L'utilisation d'une map, ou n'importe quelle structure, coupl�e � un fichier peut �tre int�ressante, mais il faut s'assurer d'avoir des protections en cas de donn�es corrompues (assert, ...), parce que le compilateur ne pourra plus t'indiquer que la stat � laquelle tu veux acc�der n'existe pas/plus.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Compression & R�duction du code
    Par Arnaud F. dans le forum jQuery
    R�ponses: 2
    Dernier message: 28/08/2010, 13h01
  2. r�duction de code
    Par levaron dans le forum Langage
    R�ponses: 3
    Dernier message: 02/06/2009, 09h16
  3. R�duction de code
    Par NeMo_O dans le forum Algorithmes et structures de donn�es
    R�ponses: 7
    Dernier message: 21/08/2008, 14h38
  4. r�duction de code
    Par lefelinherbivore dans le forum ActionScript 1 & ActionScript 2
    R�ponses: 1
    Dernier message: 24/04/2008, 21h49
  5. R�duction de code
    Par mouaa dans le forum VBA Access
    R�ponses: 13
    Dernier message: 27/12/2007, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo