JEUX DE DAME C++ PROJET BTS IRIS

Signaler
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
-
Messages postés
1
Date d'inscription
mardi 3 avril 2018
Statut
Membre
Dernière intervention
3 avril 2018
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50613-jeux-de-dame-c-projet-bts-iris

Messages postés
1
Date d'inscription
mardi 3 avril 2018
Statut
Membre
Dernière intervention
3 avril 2018

bonsoir j'ai un probleme avec le projet j'arrive pas a le compiler est ce que quelqu'un peux m'aider
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
> Pourquoi dis tu ca ? "Utilisation de using namespace std; => beurk."
Tu peux potentiellement créer des ambiguïtés, et tu détruis la notion d'espace de nom. C'est un peu dommage d'avoir la possibilité de séparer des modules dans des namespaces pour ensuite les faire sauter !
De plus, si tu veux vraiment écrire "cout" au lieu de "std::cout", utilise "using std::cout;" dans un espace restreint (dans une fonction, un namespace, un fichier de classe). La pire chose à faire étant de faire "using namespace std;" dans un .h => toutes personnes utilisant ton .h se fera faire sauter ses modules, alors que ceux-ci n'ont rien demandé.
Personnellement, je ne suis pas à trois caractères près, et préfère largement écrire std::cout.

http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5
(Néanmoins, c'est une question récurrente, j'écrirais sûrement un tuto codes-sources là dessus prochainement.)

> Tu penses qu'une "bonne fonction" doit étre composer combien de ligne ?
Une bonne fonction devrait tenir à l'écran. Pour ma part, je pense que plus la fonction est petite, mieux c'est. Attention, par petite fonction, je ne dis pas une fonction compactée, illisible pour qu'elle soit petite, mais une fonction correctement pensé, qui sépare un maximum les idées. Un maximum de 50 lignes est pas mal, mais ce n'est pas une limite, une fonction de 60 lignes peut très bien être de bonne qualité, ce n'est vraiment pas une limite absolue.
En fait, ce n'est pas vraiment une question de ligne, mais plus de séparation d'idées.
Par exemple dans le switch de ton main, y a très facilement moyen de découper le code, et de la factoriser. Il y a pas mal de cas, ou tu fais pratiquement la même chose.

> (attention : Pour un programme qui gére l'Intelligence Artificielle, it's not easy :D )
Ca ne change strictement rien. Quelque soit le domaine, une idée se décompose.

> Qu'est ce que j'aurais du utiliser à la place des "winsocks" pour faire fonctionner cette application pour un maximum d'OS ?
Des sockets conçus pour être portables. Cherche "multiplateform socket" sur google. Par exemple, tu as Boost::Socket, ou les QSockets, de QT4.

> atoi dans ton code
Utilise des sstream, "atoi" c'est du C, pas du C++.
Messages postés
49
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
15 juillet 2009

Salut,

Merci pour ton conseil, je vais mettre en ligne juste le source.

Pourquoi dis tu ca ? "Utilisation de using namespace std; => beurk."

Tu penses qu'une "bonne fonction" doit étre composer combien de ligne? (attention : Pour un programme qui gére l'Intelligence Artificielle, it's not easy :D )

Qu'est ce que j'aurais du utiliser à la place des "winsocks" pour faire fonctionner cette application pour un maximum d'OS ?


Lionceau,
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
J'ai regardé juste le contenu du zip, c'est un peu n'importe quoi (je parle du contenu).
Tu aurais largement pu le mettre sur le site, en effaçant tout ce qui n'était pas utile:
- Les fichiers *.o
- Les fichiers *.tmp
- Les fichiers *.html, *.css et autre documentations
- La totalité de la doc Doxygen en double
- toto.cpp (quasi vide ?)

Perso de 1400Ko, j'arrive à 94Ko !!! (Plus que 1000 fois plus petit !)
La doc et/ou le projet entier sous megaupload c'est bien, mais ajoute au moins la version avec uniquement les sources sur le site, ça permet de voir ton code sans télécharger ton zip.

Au niveau du code:
- Le doxygen c'est bien, ça change des codes non documentés.
- Utilisation de using namespace std; => beurk.
- Découpage du code moyen: beaucoup de fonction monolithique (paie tes fonctions de 300 lignes).

Je n'ai pas pu tester l'appli, elle ne compile pas sous Linux (sûrement dû aux winsocks).
Afficher les 18 commentaires