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

Télécharger C Discussion :

BattleShip en C (essai)


Sujet :

Télécharger C

  1. #1
    Robot Forum
    Avatar de forum
    Inscrit en
    Novembre 1999
    Messages
    2 774
    Détails du profil
    Informations forums :
    Inscription : Novembre 1999
    Messages : 2 774
    Points : 2 549
    Points
    2 549
    Par défaut BattleShip en C (essai)
    Bonjour,

    Je vous propose un nouvel élément à utiliser : BattleShip en C (essai)

    Voici une version écrite en C permettant de faire une partie contre l'ordinateur.



    C'est un essai, il y a peu ou pas du tout de commentaires (désolé je suis trop pourri), cependant (logiquement) vous devriez pouvoir mener une partie de bout en bout (soit vers la défaite, soit vers la victoire ^^).



    Je voudrais bien trouver un moyen sous Linux de pouvoir apporter des modifications, notamment concernant l'affichage (prévu pour du 1920x1080 ou en 1280x800) je voudrais pouvoir développer une fonction qui permette d'afficher l'interface utilisateur de manière propre peu importe la résolution (attention ce programme est en mode terminal).



    Pour compiler le code source:



    gcc -pthread sda2013.c -o sda2013



    Les répertoires maps doivent se trouver dans le même répertoire que l'exécutable.

    Jusqu'à présent vous pouvez jouer sur des maps 12x12, 13x13, 14x14 (mais il est prévu de jouer sur d'autres maps, maximum 26x26 en fonction de la résolution de l'écran, mais c'est pas automatique)



    Je pense à faire un serveur java pour pouvoir faire des parties réseau (toute aide pour le module réseau client serait la bienvenue, d'autant que la programmation réseau TCP en C n'est pas une sinécure).























    Qu'en pensez-vous ?

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je suis sous Windows, je n'ai donc pas testé le programme. Les screenshots sont pas mal, ça m'a donné envie de regarder le code. J'ai eu un peu peur juste en ouvrant l'archive. Un seul fichier c de...... 2185 lignes ; un seul point contenant...... 350 lignes de code !

    C'est dommage car il y a indéniablement énormément de travail mais c'est impossible de rentrer dedans. Tu as par exemple une fonction IntelligenceLevelTwo() qui fait 500 lignes avec quasiment aucun commentaire en cours de route et pas de description au début ! On trouve aussi une fonction start() qui fait 480 lignes !

    Même pour toi, je me demande comment tu as pu te souvenir de tout ce que fait ton code avec si peu de commentaires et de découpage en fichiers ! Tu as une sacrée mémoire on dirait ^^

    Petite remarque : tu ne compiles pas avec des flags tels que -Wall -Wextra ? Ou alors c'est que pour nous que tu les as enlevé ?

    Encore une fois, on sent qu'il y a énormément de travail donc bravo à toi ! Le sources postées ces derniers n'étaient largement pas aussi conséquentes.

  3. #3
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    Oui tu as raison, j'étais tellement content d'avoir obtenu quelque chose de valable que je me suis empressé de le poster.

    Je savais qu'il n'y avait pas/peu d'explications, moi ça va je sais ce que je fais (plus ou moins) mais il est clair que si quelqu'un (par exemple une personne motivée pour porter le programme sous Windows) devait plonger dans mon code il aurait vite mal à la tête.

    Ce que je vais faire c'est prendre le temps de relire le code et dans un fichier (pdf) à part "tenter" d'expliquer en grande ligne le fonctionnement du programme.
    Dans le code source, je vais commenter beaucoup plus.

    Je compile en ligne de commande (comme au bon vieux temps) ce qui fait que je ne voulais pas découper mon application en "modules" et commencer à jouer avec un Makefile, paresse encore une fois.

    De plus, à la base, c'était un exercice récapitulatif pour mes étudiants, et à leur niveau la compilation de plusieurs fichiers "objets" en un seul exécutable c'est de l'inconnu. Ils débutent ne leur faisons pas trop peur ^^

    Je modifierais les fichiers joints en conséquence.
    Je sais c'est pas du tout professionnel et je vous demande déjà à tous d'accepter mes excuses. La précipitation n'est jamais gage de solutions.

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Un makefile n'est pas forcément requis. Un simple gcc *.c -o battleship suffirait.

    Je me pencherai plus longuement sur ton code ce soir.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Bonjour,

    je serai un peu moins enthousiaste que bktero
    C'est vrai que le screenshot et mes souvenirs issus du début des années 80 m'ont donnés envie de tester ton jeu. Un bon vieux «battaille navale» comme du temps de mes bidouilles sur mon cbm64 ... Enfin ... passons aux quelques points qui maintenant me chiffonnent pour un code fournit ici (je ne parlerai donc pas de jouabilité ou d'esthétique du jeu) :

    • pas de compilation séparée ????
    • Un header avec du code dedans !!! Heureusement que tu n'utilises pas la compilation séparée -> en général (sauf cas particuliers motivés) c'est à proscrire à tout prix.
    • Un code qui n'est pas maintenable au-delà de la semaine car trop long par endroit, copié/collé dangeureux, commentaires inégaux en qualité, aucune segmentation du code, et surtout couplage trop fort entre ton interface et ton moteur de jeu
    • Quelques erreurs potentielles (enfin repérées en diagonale ... c'est à approfondir), je ne les ai repérées que grâce aux options -Wall -Wextra (Bktero fait bien de soulever le point)

      • main doit renvoyer un int, ton prototype n'est pas conforme ; bon c'est pas super grave ...
      • Une grosse erreur : dans la fonction Start, tu déclares carLu un unsigned char (l265); ensuite tu lui donnes la valeur de retour d'un fgetc (qui renvoie un signed int); puis surtout ensuite tu l'utilises ainsi : atoi(&carLu) en l335.
        L'erreur est dans ce dernier appel car atoi attend une chaîne à 0 terminal pour transformer cette chaîne en int, tu dois avoir du bol que sur le stack l'alignement fait que l'octet suivant ton carLu soit nul ... cela peut provoquer des erreurs difficiles à débugguer (-> l'ajout d'une nouvelle variable locale ou même simplement une modification de leur ordre de déclaration peut faire planter ton programme sans raison apparente dans certains cas par exemple)
        Même erreur ensuite en l395.
        Là il s'agit d'une véritable erreur pouvant planter ton programme.
        Ce genre d'erreur est très difficile à repérer (coup de bol pour moi, tu mélanges les unsigned char avec des char et des int ...).

      • le reste des warning concerne souvent des variables non utilisées, des différences de signes lors de comparaison ou de passage de paramètres, ainsi que des petits problèmes de const.

    • Pourquoi ne pas avoir utilisé une bibliothèque «classique» comme ncurses pour ton interface ?
    • Contrairement à l'Éternel, je considère le Makefile comme presque indispensable. Petite remarque, pour ma configuration il s'avère indispensable de rajouter l'option -lm pour compiler.


    Je considère ce source plus comme une belle réalisation «one shot» d'hobbyiste qu'une base de développement ou d'apprentissage pour des personnes désirant s'engager dans le développement.
    En tout cas bravo pour l'effort, pour le résultat et les quelques minutes que j'ai passées à jouer ont été agréables quoique parfois laborieuses

  6. #6
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    Je considère ce source plus comme une belle réalisation «one shot» d'hobbyiste qu'une base de développement ou d'apprentissage pour des personnes désirant s'engager dans le développement
    ...c'est en effet le cas, il s'agit d'un essai que j'ai fait en quelques jours... je n'ai aucune prétention...

    Un header avec du code dedans !!! Heureusement que tu n'utilises pas la compilation séparée -> en général (sauf cas particuliers motivés) c'est à proscrire à tout prix
    ...je n'ai plus programmé en C depuis 1999 et j'ai sans doute oublié les bonnes attitudes... je tiendrais compte de cette remarque pour la communiquer à mes étudiants ^^

    Un code qui n'est pas maintenable au-delà de la semaine car trop long par endroit, copié/collé dangeureux, commentaires inégaux en qualité, aucune segmentation du code, et surtout couplage trop fort entre ton interface et ton moteur de jeu
    ...pour les commentaires je ne reviens pas dessus... mais ceci montrera à mes étudiants aussi que c'est très important de commenter convenablement son code...
    Je suis certain, une fois que j'aurais le temps, de pouvoir rendre ce code plus lisible, tes remarques sont très objectives et me sont très utiles.

    Une grosse erreur : ...
    Là il s'agit d'une véritable erreur pouvant planter ton programme.
    Ce genre d'erreur est très difficile à repérer (coup de bol pour moi, tu mélanges les unsigned char avec des char et des int ...).
    ...c'est tout l'avantage de poster ce code aux yeux de véritables experts... je vais corriger cela dès que j'aurais un peu de temps...

    Pourquoi ne pas avoir utilisé une bibliothèque «classique» comme ncurses pour ton interface ?
    ...excellente question... je suis tombé dessus par hasard dans mes recherches mais je n'avais "pas le temps" d'approfondir... si je trouve de la bonne documentation je m'y pencherais...

    Je suis content des réactions et je vais sans doute en apprendre un peu plus sur les "bonnes" manières de programmer en C !!

    D'ici peu vous aurez une toute autre version du code source, je ne dis pas que chaque ligne sera commentée mais à mon avis ce sera plus lisible pour les personnes "extérieures". Du moins c'est le minimum que je puisse faire.

    Je vais corriger aussi les erreurs potentielles (je n'imaginais pas à quel point je risquais de voir mon application buggée), histoire de tirer bénéfice des avis des experts. Apporter plus de rigueur. J'ai trop tendance à penser que "c'est bon ça marche" sans doute l'influence de mes élèves ^^

    Merci beaucoup en tous cas ^^

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    De plus, à la base, c'était un exercice récapitulatif pour mes étudiants, et à leur niveau la compilation de plusieurs fichiers "objets" en un seul exécutable c'est de l'inconnu. Ils débutent ne leur faisons pas trop peur ^^
    Mon avis c'est qu'il vaut mieux leur donner une bonne habitude dés le départ, ils auraient plus peur selon moi d'un code de ce type que d'un code plus organisé
    Pour l'affichage quelque soit la résolution, tu peux passer par l'API win32 aussi.
    (si tu es sous windows).
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    c'est bon ça marche
    Lol ! Règle d'or du code : "ça marche, je peux commencer les tests intensifs ; c'est testé avec succès, c'est bon"


    De plus, à la base, c'était un exercice récapitulatif pour mes étudiants, et à leur niveau la compilation de plusieurs fichiers "objets" en un seul exécutable c'est de l'inconnu. Ils débutent ne leur faisons pas trop peur ^^
    C'est pas un peu conséquent comme code pour des débutants justement ? Ils prennent cher tes élèves !


    Mon avis c'est qu'il vaut mieux leur donner une bonne habitude dés le départ, ils auraient plus peur selon moi d'un code de ce type que d'un code plus organisé
    Je suis tout à fait d'accord ! Il faut donner de bonnes habitudes et réflexes dés le début. J'ai pris trop de mauvaises habitudes en école que j'ai eu du mal à perdre...

    D'ailleurs, le découpage en fichier par thèmes et modules doit se faire dés le début. Ça permet d'isoler les fonctionnalités et comme le dit kwariz, de faciliter un couplage plus faible. Si tout est dans le même fichier, la tentation est beaucoup trop grande d'imbriquer les éléments, les rendant inséparables. Typiquement ici, kwariz pointe le problème de couplage de l'interface graphique qui complique le portage de l'application vers une autre plateforme ou de passer en mode fenêtré.

    je serai un peu moins enthousiaste que bktero
    J'ai pourtant l'impression qu'on exprime un avis assez proche non ?
    On est contents que des gens postent de vraies sources et non 3 lignes qui compilent pas (true story...). Mais dans le même temps, on a pas mal de reproches (constructives mais on est comme ça nous ) à faire.

  9. #9
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Citation Envoyé par Bktero Voir le message
    [...]
    J'ai pourtant l'impression qu'on exprime un avis assez proche non ?
    On est contents que des gens postent de vraies sources et non 3 lignes qui compilent pas (true story...). Mais dans le même temps, on a pas mal de reproches (constructives mais on est comme ça nous ) à faire.
    Oui on est du même avis, d'aileurs souvent je ne poste pas car tu m'as devancé et que je n'avais rien de plus constructif à ajouter
    Je suis moins enthousiaste dans le sens que je trouve cet exemple inapproprié pour apprendre la programmation ni même le C. C'est pour cela que je parle de premier jet d'hobbyiste. Je pense que le public auquel s'adresse hurukan est plutôt jeune et constitue seulement une sorte d'introduction à la programmation sous un aspect ludique (cela est confirmé si tu googles un peu). Comme l'auteur le dit lui-même, la démarche n'a pas pour but de produire un code pro/propre/etc. mais plus pour donner une idée de ce que c'est et d'être content de soi pour l'avoir fait.
    Ensuite on peut discuter des heures, troller ou lancer une flame war pour savoir si un environnement plus classique (style vs express) est plus adapté ou non ... c'est le genre de discussion qui se stérilise vite par elle-même malheureusement.
    Nous verrons bien si nos remarques portent ou non, la motivation est là et c'est ce qui importe au final dans ce cas

  10. #10
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    Oui ils prennent cher mes élèves mais attention: je ne me sers de ce programme fonctionnel (dans les grandes lignes) pour démontrer qu'il est possible de faire quelque chose de sympa avec ce que nous avons vu aux cours.

    La compilation (console, IDE netbeans)

    La syntaxe

    Les variables <-> types de données (bon c'est vrai c'est pas top top l'exemple que je donne mais à ma décharge nous ne poussons pas l'analyse très loin, ils ont entre 17 et 19 ans ils ont du mal à se représenter les concepts)

    Les tableaux (entiers et chaînes de caractères)

    Les boucles

    Les fonctions

    Les entrées/sorties

    ...les trucs habituels quoi.

    Je ne vais pas leur demander d'aller aussi loin que moi, les "algorithmes" pour "améliorer" la manière dont va tirer l'ordinateur je ne vais pas leur demander de le pondre.

    Je veux juste qu'ils puissent se rendre compte qu'ils sont capables de faire une petite application avec ce qu'ils savent et savent faire. Si ils savent mener une partie de bout en bout d'ici début juin je serais déjà très satisfait.
    Ils sont déjà capables d'utiliser les fonctions mises à leurs disposition pour l'affichage des informations, ils modifient le code pour afficher d'autres couleurs que l'horrible vert par défaut... non je pense que c'est une sorte d'émulation pour eux...

    Autre exemple, ils ne géreront que des grilles 12x12, le côté "dynamique" c'est moi qui l'ai pondu pour "faire le malin" sans plus.

    J'ai plus envie de partager ma passion, que de les torturer ^^

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    J'espère seulement pour tes élèves et pour toi aussi que tu tiendras compte de l'avis de membres du forum expérimentés en programmation.
    Je comprend tout a fait ton but de rendre ton cours plus attractif mais je pense que tu devrais sincèrement réfléchir aux remarques qui ont été faites
    Bonne chance à toi et tes élèves^^
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  12. #12
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    Citation Envoyé par dragonno Voir le message
    J'espère seulement pour tes élèves et pour toi aussi que tu tiendras compte de l'avis de membres du forum expérimentés en programmation.
    Je comprend tout a fait ton but de rendre ton cours plus attractif mais je pense que tu devrais sincèrement réfléchir aux remarques qui ont été faites
    Bonne chance à toi et tes élèves^^
    Merci dragonno ^^
    Oui, j'en tiendrais compte. Il faudrait que je revoies mes exercices/exemples pour mettre en exergue "les bonnes pratiques" préconisées autant sur ce forum que dans les bons bouquins de C que j'ai à la maison.

    Mon principal problème a été de répondre à une demande sans "matraquer" trop mes étudiants qui souvent se découragent à la première difficulté.

    Cependant il me revient de reprendre mon cours et de l'améliorer pour tenir compte des remarques intéressantes des personnes qui se sont intéressées au code. Et qui ont pris un peu de leur temps précieux pour en discuter.
    Ca tombe d'autant bien que mon cours est programmé sur deux années scolaires, donc les 5ème (2ème en France, je crois) d'aujourd'hui devraient être en 6ème (terminale en France je crois) l'année prochaine et comprendront que je serais plus exigent avec eux sur la manière de programmer en C. Il va falloir que je bouquine pour trouver des exemples/exercices intéressants mettant en exergue la compilation séparée en modules, apprendre à faire un makefile convenable, etc...
    Je sens que ça va être très excitant ^^

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Je sens que ça va être très excitant ^^
    Tout a fait
    Vive la programmation
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonsoir à tous!

    Je me présente, jeune étudiant porte parole de deux autres. Nous sommes tous les trois des élèves de Hurukan (Et oui m'sieur, votre code n'est plus uniquement sur votre pc, il se trouve à notre portée maintenant )

    Je viens de lire un peu les commentaires, j'en ai compris le 1/4.. Mais j'ai pris compte de quelques informations telles que: Pas de code dans un header (bien que nous lui avions déjà soumis l'idée auparavant )

    Nous avons encore trois ans devant nous avant de réellement maîtriser un peu la programmation..

    ps: C'était juste un message pour vous dire, M'sieur, qu'on avait trouvé votre code!

Discussions similaires

  1. [Débutant] Premier essai DirectX9 - Question
    Par stebar dans le forum DirectX
    Réponses: 4
    Dernier message: 30/12/2005, 14h39
  2. [Kylix] Premier essai
    Par alcaloide dans le forum EDI
    Réponses: 7
    Dernier message: 24/12/2005, 15h14
  3. Réponses: 4
    Dernier message: 02/11/2005, 16h24
  4. Essai JBuilder 2005
    Par nprovost dans le forum JBuilder
    Réponses: 5
    Dernier message: 14/01/2005, 13h31
  5. Version d'essai
    Par skunkies dans le forum Access
    Réponses: 52
    Dernier message: 17/11/2004, 01h42

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