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 :

mini rpg c++ le retour


Sujet :

C++

  1. #21
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    En fait, la logique est en réalité toute simple:
    1. Si une valeur peut etre négative, tu peux (doit!) utiliser un type signé (int, long, long long, ...) dont la taille permet de représenter au minimum l'ensemble des valeurs qui t'intéressent.
    2. Si les valeurs numériques sont susceptibles de ne jamais être négatives, comme ce qui permet de représenter des tailles ou des indexes, l'idéal est d'utiliser size_t afin d'éviter de placer une limite "artificielle" parce que les valeurs sont répartie de part et d'autre de 0
    3. Si les valeurs sont destinées à être utilisées avec les résultat de fonctions membres des différentes collections de la STL (size, capacity, etc), size_t est le type renvoyé par ces fonctions, et donc le type à utiliser comme valeurs de références
    En gros, il n'y a que pour le déplacement qu'il est utile d'avoir des valeurs négatives (on peut "revenir en arrière" )

    Tout ce qui se rapporte à Position, à tileAt ou aux tailles des lignes et des colonnes doit utiliser des size_t
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  2. #22
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Je suis d'accord avec toi et non d'accord a la fois explication :

    prenons exemple des jeux d'aujourd'hui beaucoup on une coordonnées x et une y et beaucoup ont intégré un système qui fait que une ligne traverse la carte de gauche a droit et de haut en bas et quand celle ci ce rencontre il estime que c'est le centre de la carte donc y = 0 et x = 0. toujours dans le même cas si on pas la ligne de gauche a droite un coté sera a +x et l'autre -x pareil pour la ligne de haut en bas avec +y et -y donc on aurai pu voir des valeur négative apparaitre si jamais il y avait ces fameuses lignes qui définissent le centre.

    mais dans notre cas n'existant pas je suis d'accord sur le fait des valeur strictement positive

  3. #23
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Les coordonnées sont souvent des float ou des double aussi.
    Mais ce qui compte c'est que dans ton cas tu n'a pas de coordonnées négatives, et tu a des coordonnées entières.

  4. #24
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    En fait, le système de coordonnées centrées sur 0,0 est intéressant lorsque tu travailles sur des nodes de type "octree" ou similaire (en gros, ta carte est un arbre de coordonnées dont tu peux prendre un "sous ensemble" qui correspond à la partie à afficher).

    C'est utile lorsque tu travaille e vue subjective ou 3D et que la "caméra" représente ta position, car tu n'as jamais besoin d'afficher l'intégralité de la map.

    Par contre, dans le cas présent, cela nécessiterait d'avoir des indexes de position (qui, en tant qu'index valent 0, vu que c'est la convention en C++) qui représentent des coordonnées négatives, et, pour obtenir l'index, tu devrais faire une manipulation supplémentaire qui consiste à corriger abscisses et ordonnées d'une valeur correspondantes

    Dans le cas présent, cette solution n'est clairement pas applicable, et le principe Xp, KISS (Keep It simple, Stupid) nous incite largement à l'éviter
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #25
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    bon bah ma théorie est morte

  6. #26
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par devdeb91 Voir le message
    bon bah ma théorie est morte
    Non: adaptée
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #27
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Non: adaptée
    bon j'ai changer ce qui avait a changer mais il est reste 3 errors que malgrés mes recherche je n'y arrive pas a les corriger donc voici les errors si vous pouviez m'aider :

    la 1ere je sais que il veut un operator != mais je ne saurais le faire
    les 2 autres je sais pas pourquoi

    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
    58
    59
    60
    61
    62
    63
    64
    C:\Users\kevin\Desktop\jeu2\main.h||In member function 'bool SMap::hasTeleportAt(size_t, size_t) const':|
    C:\Users\kevin\Desktop\jeu2\main.h|47|error: no match for 'operator!=' in 'Position(x, y) != ((const SMap*)this)->SMap::wraps.std::map<_Key, _Tp, _Compare, _Alloc>::end<Position, SWrap, std::less<Position>, std::allocator<std::pair<const Position, SWrap> > >()'|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note: candidates are:|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\..\include\objbase.h|80|note: BOOL operator!=(const GUID&, const GUID&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\..\..\..\..\include\objbase.h|80|note:   no known conversion for argument 1 from 'Position' to 'const GUID& {aka const _GUID&}'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_multimap.h|829|note: template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator!=(const std::multimap<_Key, _Tp, _Compare, _Alloc>&, const std::multimap<_Key, _Tp, _Compare, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_multimap.h|829|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::multimap<_Key, _Tp, _Compare, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_map.h|913|note: template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator!=(const std::map<_Key, _Tp, _Compare, _Alloc>&, const std::map<_Key, _Tp, _Compare, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_map.h|913|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::map<_Key, _Tp, _Compare, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_tree.h|883|note: template<class _Key, class _Val, class _KeyOfValue, class _Compare, class _Alloc> bool std::operator!=(const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&, const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_tree.h|883|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_tree.h|315|note: template<class _Val> bool std::operator!=(const std::_Rb_tree_iterator<_Tp>&, const std::_Rb_tree_const_iterator<_Val>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_tree.h|315|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::_Rb_tree_iterator<_Tp>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_vector.h|1394|note: template<class _Tp, class _Alloc> bool std::operator!=(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_vector.h|1394|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::vector<_Tp, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\streambuf_iterator.h|212|note: template<class _CharT, class _Traits> bool std::operator!=(const std::istreambuf_iterator<_CharT, _Traits>&, const std::istreambuf_iterator<_CharT, _Traits>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\streambuf_iterator.h|212|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::istreambuf_iterator<_CharT, _Traits>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2553|note: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2553|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::basic_string<_CharT, _Traits, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2541|note: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const _CharT*, const std::basic_string<_CharT, _Traits, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2541|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   mismatched types 'const _CharT*' and 'Position'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2529|note: template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::basic_string<_CharT, _Traits, _Alloc>&, const std::basic_string<_CharT, _Traits, _Alloc>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|2529|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::basic_string<_CharT, _Traits, _Alloc>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\allocator.h|134|note: template<class _Tp> bool std::operator!=(const std::allocator<_Tp1>&, const std::allocator<_Tp1>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\allocator.h|134|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::allocator<_Tp1>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\allocator.h|129|note: template<class _T1, class _T2> bool std::operator!=(const std::allocator<_T1>&, const std::allocator<_T2>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\allocator.h|129|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::allocator<_T1>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|1051|note: template<class _Iterator> bool std::operator!=(const std::move_iterator<_Iterator>&, const std::move_iterator<_Iterator>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|1051|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::move_iterator<_Iterator>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|1045|note: template<class _IteratorL, class _IteratorR> bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|1045|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::move_iterator<_IteratorL>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|355|note: template<class _IteratorL, class _IteratorR> bool std::operator!=(const std::reverse_iterator<_IteratorL>&, const std::reverse_iterator<_IteratorR>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|355|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::reverse_iterator<_IteratorL>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|305|note: template<class _Iterator> bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_iterator.h|305|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::reverse_iterator<_Iterator>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_pair.h|225|note: template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_pair.h|225|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::pair<_T1, _T2>'|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\postypes.h|223|note: template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)|
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\postypes.h|223|note:   template argument deduction/substitution failed:|
    C:\Users\kevin\Desktop\jeu2\main.h|47|note:   'Position' is not derived from 'const std::fpos<_StateT>'|
    C:\Users\kevin\Desktop\jeu2\main.h||In member function 'Position SMap::nextMap(size_t, size_t)':|
    C:\Users\kevin\Desktop\jeu2\main.h|52|error: expected primary-expression before '.' token|
    C:\Users\kevin\Desktop\jeu2\main.h||In member function 'Position SMap::gamerNextPosition(size_t, size_t)':|
    C:\Users\kevin\Desktop\jeu2\main.h|62|error: expected primary-expression before '.' token|
    C:\Users\kevin\Desktop\jeu2\main.cpp||In function 'int main()':|
    C:\Users\kevin\Desktop\jeu2\main.cpp|18|warning: unused variable 'exit' [-Wunused-variable]|
    C:\Users\kevin\Desktop\jeu2\main.cpp|19|warning: unused variable 'gamespeed' [-Wunused-variable]|
    ||=== Build finished: 3 errors, 2 warnings (0 minutes, 3 seconds) ===|

  8. #28
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    En fait, si mes souvenirs sont bons, on avait défini l'opérateur == pour le type Position.

    Il "suffit" donc de définir l'opérateur != sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    inline operator != (Position const & first, Position const & second)
    {
        return  !(first == second);
    }
    Les autres erreurs sont sans doute "simplement" dues à la première (car le compilateur arrête le parsing du fichier dés qu'il trouve une erreur).

    Si ce n'est pas le cas, tu n'auras qu'à donner les erreurs qu'ils affiche
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #29
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Si mes souvenirs sont bons pour les autres on avait défini bool le type donc pourquoi le mettre inline ici ? Quelles seront les différences apportées entre ces deux la ? Faut il revenir sur les type des deux anciens operator ?

  10. #30
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Juste une erreur, il faut la déclarer inline bool.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #31
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par devdeb91 Voir le message
    si mes souvenir sont bon pour les autres on avait defini bool le type donc pourquoi le mettre inline ici ? quel seront les difference apporter entre ces deux la ? faut il revenir sur les type des deux ancien operator ?
    Comme dit Médinoc, déclare la inline bool.

    Une fonction inline se déclare et s'utilise comme une fonction, mais le compilo (s'il accepte de la passer inline ^^") va juste recopier le code de la fonction partout ou elle est utilisée.
    C'est pratique pour les petites fonctions car un appel de fonction prend du temps, et pour ce genre de fonction, l'appel sera probablement plus long que le traitement effectué par la fonction elle même.
    C'est donc un gain de performance gratuit (presque, ça génère un binaire plus gros) et facile à mettre en place.
    (Sauf exception c'est un gain de performance, mais dans certains cas, si la fonction est appelé un très grand nombre de fois, on peut avoir une perte de performance)

  12. #32
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    bon alors j'ai tester avec l'operator mais toujours l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\kevin\Desktop\jeu2\main.h|48|error: no match for 'operator!=' in 'Position(x, y) != ((const SMap*)this)->SMap::wraps.std::map<_Key, _Tp, _Compare, _Alloc>::end<Position, SWrap, std::less<Position>, std::allocator<std::pair<const Position, SWrap> > >()'|
    qui apparait donc je seche la je vois pas ce qui veut

  13. #33
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Je dirais que tu compares une Position et un iterator (std::map<Position, SWrap>::iterator).
    On peut avoir le morceau de code en question ?

    (Probablement un it à remplacer par un it->first)

  14. #34
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Voici le bout de code où il trouve l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     bool hasTeleportAt(size_t x, size_t y) const
            {
                return wraps.find(Position(x,y) != wraps.end(); // c'est ici
            }

  15. #35
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Il manque une parenthèse pour ton find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     bool hasTeleportAt(size_t x, size_t y) const
    {
        return wraps.find(Position(x,y)) != wraps.end(); // c'est ici
    }

  16. #36
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Bon vu sous cet angle-là je l'admets que ça marche mieux et que c'était une erreur bete . donc voila comme l'a demandé koala si les 2 autres erreurs persistaient je devais faire des retours donc voici les 2 autres erreurs avec leur code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\kevin\Desktop\jeu2\main.h|53|error: expected primary-expression before '.' token|
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Position nextMap(size_t x, size_t y)
            {
                auto it = wraps.find(Position(x,y));
                if(it == Position.end()) // ne devrait pas arriver, mais qui sait
                {
                    return Position(0,0);
                }
                return it->second.destinationMap;
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Users\kevin\Desktop\jeu2\main.h|63|error: expected primary-expression before '.' token|
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Position gamerNextPosition(size_t x, size_t y)
            {
     
                auto it = wraps.find(Position(x,y));
                if(it == Position.end()) // ne devrait pas arriver, mais qui sait
                {
                    return Position(0,0);
                }
                return it->second.destinationCoordinates;
            }

  17. #37
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Position.end() à remplacer par wraps.end()Des erreurs d’inattentions ça :o

    (Tu cherches dans la map, et ensuite tu vérifies que le résultat soit valide).

  18. #38
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    Ah oui maintenant que tu le dis c'est vrai que ça me parait logique je devais être vachement fatigué pour pas remarquer. merci pour les réponses je donne des retours des que j'ai des résultat concluants

  19. #39
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Et moi, vachement fatigué quand je l'ai écrit
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  20. #40
    Membre éclairé Avatar de devdeb91
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 246
    Par défaut
    D'ailleurs pendant que tu es là tu peux certainement me répondre comment faire pour que ifs>>c puisse lire un espace car quand on fait une map genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ######
    #    #
    #    #
    ######
    les case blanche il veut pas les lire et les saute aurez tu une idée

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Création mini-rpg type bomberman
    Par joonhy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2015, 15h16
  2. mini rpg c/c++
    Par devdeb91 dans le forum Débuter
    Réponses: 104
    Dernier message: 09/02/2013, 00h38
  3. Mini RPG representation UML
    Par manserk dans le forum Débuter
    Réponses: 12
    Dernier message: 28/04/2011, 23h13
  4. Mini code Rapide / Retour de valeur
    Par ALLODREN dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/04/2009, 10h46
  5. Recherche de la racine mini d'une fonction inconnue - Le retour
    Par plegat dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 19/11/2007, 22h37

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