Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tuto (jeu du pendu)

    18 août 2007 à 8:10:02

    Salut à tous,

    Je viens de finir le tuto de Matéo (le jeu du pendu)...et même si la partie 1 était relativement facile, j'ai beaucoup plus galéré sur la partie 2 (le dictionnaire) mais j'y suis finalement arrivé.
    Bon j'ai bien conscience que mon code est pas super clean (lol je viens de le finir)...mais ça marche, avec une boucle pour savoir si on veut recommencer une partie.

    Hésitez pas à commenter...je cherche toujours à apprendre. :)

    PS1: le code sur le passage d'un string en char est pas de moi mais viens de chez dev.com
    PS2: Pour ceux qui cherche un dico, vous pourrez trouver ici un .txt de plus de 22000 mots (avec un passage dans notepad++, vous pouvez facilement remplacer tous les È,É, etc...)

    1. #include <iostream>
    2. #include <stdlib.h>
    3. #include <stdio.h>
    4. #include <time.h>
    5. #include <string>
    6. #include <fstream>
    7. #include <cstring>
    8. using namespace std;
    9. int nombreale(int i);
    10. string motmyst(int nombrealeatoire);
    11. int main(int argc, char *argv[])
    12. {
    13. char y='Y';
    14. char recom='Y';
    15. //Intro
    16.         cout<<"\t\t### Le jeu du pendu ###\n\n";
    17.         cout<<"Vous demarrez avec 10 chances"<<endl;
    18.         cout<<"Trouvez le mot avant d'epuiser vos chances!\n\n"<<endl;
    19. do{
    20. char choixLettre=0;
    21. int coup=10;
    22. int bravo=0;
    23. char n='n';
    24. int nombremot=0;
    25. nombremot=nombreale(nombremot)-1;
    26. //cout<<nombremot<<endl;
    27. //nombrealeatoire
    28. int nombrealeatoire;
    29. srand((int)time(NULL));
    30. nombrealeatoire=rand()%nombremot;
    31. if (nombrealeatoire==0)
    32. nombrealeatoire=1;
    33. else
    34. nombrealeatoire=nombrealeatoire;
    35. //cout<<nombrealeatoire<<endl;
    36. //mot mystere
    37. string motmysta;
    38. motmysta=motmyst(nombrealeatoire);
    39. //cout<<motmysta<<endl;
    40.     size_t size = motmysta.size() + 1;
    41.     char * motmystsC = new char[ size ];
    42.     strncpy( motmystsC, motmysta.c_str(), size );
    43.     //cout << motmystsC << '\n';
    44. //cout<<motmystsC<<endl;
    45. int longueurmot=strlen(motmystsC);
    46. //cout<<longueurmot<<endl;
    47. char motcache[26]={0};
    48. int j=0;
    49. do
    50. {
    51.         motcache[j]='*';
    52.         j++;
    53. }while(j<longueurmot);
    54. //cout<<"Le mot cache est : "<<motcache<<endl;
    55. //
    56. //cout<<"Le mot est: "<<motcache<<endl;
    57. int chance=10;
    58. do
    59. {
    60. //cout<<"Le mot est: "<<motmystsC<<endl;
    61. cout<<"Le mot est: "<<motcache<<endl;
    62.         int m=0;
    63.         int ok=0;
    64.         cout<<"Il vous reste "<<chance<<" chance(s)"<<endl;
    65.         if (chance==0)
    66.         {
    67.         cout<<"Desole vous avez perdu"<<endl;
    68.         cout<<"Le mot etait: "<<motmystsC<<endl;
    69.         break;
    70.         }
    71.         cout<<"faites votre choix: ";
    72.         cin>>choixLettre;
    73. choixLettre = toupper(choixLettre);
    74. cout<<"\n";
    75. for (m=0;m<longueurmot;m++)
    76. {
    77. if (motmystsC[m]==choixLettre)
    78. {
    79. motcache[m]=choixLettre;
    80. ok=1;
    81. }
    82. }
    83. if (ok==0)
    84. {
    85. chance--;
    86. }
    87. //cout<<motcache<<endl;
    88. if (strcmp(motmystsC,motcache)==0)
    89. {
    90. bravo=1;
    91. cout<<"\n\nbravo vous avez trouve le mot mystere qui etait: "<<motcache<<endl;
    92. }
    93. }while (bravo==0);
    94. do
    95. {
    96. cout<<"Voulez vous recommencer ? Y/N : ";
    97. cin>>y;
    98. cout<<"\n";
    99. y = toupper(y);
    100. if (y!='Y'&& y!='N')
    101. cout<<"Veuillez indiquer votre choix par Y ou N!"<<endl;
    102. }while(y!='Y'&& y!='N');
    103. bravo=0;
    104. delete [] motmystsC;
    105.         }while(y==recom);
    106. system ("PAUSE");
    107.     return 0;
    108. }
    109. //lecture_fichier_et_nombre_aleatoire
    110. int nombreale(int i)
    111. {
    112. fstream fichier;
    113. fichier.open("dico.txt",ios::in|ios::out|ios::app);
    114. if (fichier)
    115. {
    116. string mot;
    117. i=0;
    118. while(i++,getline(fichier,mot));
    119.           /*cout<<mot<<endl;*/
    120. }
    121. fichier.close();
    122. return i;
    123. }
    124. //piochemotmyst
    125. string motmyst(int nombrealeatoire)
    126. {
    127. fstream fichier;
    128. fichier.open("dico.txt",ios::in|ios::out|ios::app);
    129. string piochemotmyst;
    130. int compteur=0;
    131. if(fichier)
    132. {
    133. do
    134. {
    135. compteur++;
    136. getline(fichier,piochemotmyst);
    137. }while(compteur!=nombrealeatoire);
    138. return piochemotmyst;
    139. }
    140. fichier.close();
    141. }
    • Partager sur Facebook
    • Partager sur Twitter
      18 août 2007 à 23:04:53

      salut ! :)

      Il y a clairement un problème dans le code (qui n'empêche cependant pas son fonctionnement). En effet, C et C++ sont deux langages (très) différents. Tu sembles dire que tu as fait ce code en C++, avec le tuto de M@teo21 qui porte sur... le C.

      Je suis parti du principe que tu as voulu coder le pendu du tuto en C++. A ce moment là, cest lignes ont un serieux problème :

      1. #include <iostream>
      2. #include <stdlib.h>
      3. #include <stdio.h>
      4. #include <time.h>
      5. #include <string>
      6. #include <fstream>
      7. #include <cstring>


      Tu as inclu trois librairies spécifiques au C !
      1. #include <stdlib.h>
      2. /* Il s'agit d'une partie de la bibliothèque standard C. Rien à voir avec le C++ */
      3. #include <stdio.h>
      4. /* Il s'agit du mécanisme de flux d'entrée et de sortie du C. L'équivalent en C++ et iostream (input output stream, soit flux d'entrée/sortie). Tu as inclu le système de flux du C ET du C++. Cela n'est pas du tout correct ! */
      5. #include <time.h>
      6. /* Encore une fois, cette librairie est une librairie C. Si tu souhaites l'utiliser dans un programme C++, tu dois inclure <ctime> (toutes les librairies C ont un équivalent C++ commençant par 'c'. Pour reprendre les deux erreurs précédents, tu aurais dû inclure <cstdio> et <cstdlib>.) */
      7. #include <string>
      8. #include <cstring>
      9. /* Erreur pus grave, qui montre qu'une notion n'est pas assimilée. Soit on code en C, soit en C++. Mélanger les deux crée un code sale, obsolète, et souvent incompatible. Tu fais croire au lecteur que tu vas utiliser le système de chaîne C++ (<sting>), mais, surprise, tu inclus le système de chaîne C (<string.h>). C'est n'importe quoi !*/


      Voici aussi deux remarques :
      1. using namespace std;
      2. /* Même si M@teo21 les utilisent dans son cours, il est déconseillé d'encombrer l'espace de nom global de cette façon. Mais là c'est pas ta faute ;) */
      3. int main(int argc, char* argv[])
      4. {
      5.   ...
      6. }
      7. /* Sais-tu à quoi servent les arguments argc et **argv ? Non ? Alors pourquoi les utilises-tu ? En C, on avait l'excuse de "c'est l'habitude", mais en C++ cela est intolérable. Tu dois définir "main" sans argument (tu peux ou non spécifier "void"), sauf si bien sûr tu compte les utiliser. */


      Je n'ai regarder que les premières lignes de ton code. Tu pensais que les deux langages se mélangeaient, ou bien c'est une (énorme) erreur d'innatention ?

      A+. Normalement, j'ai pas dit de bêtise :) .
      • Partager sur Facebook
      • Partager sur Twitter
        19 août 2007 à 0:00:41

        Salut,

        Merci à toi pour ce début de correction. En fait, j'avais commencé à coder en C puis je me suis décidé de le reprendre (la partie 2) après avoir lu sur le c++.

        Honnêtement, il y a certes de l'inattention mais aussi des erreurs.
        Par exemple je connaissais pas tous les équivalents pour les includes et concernant la fonction main, je savais pas non plus.

        Je vais laisser le "mauvais" code en haut tel quel et ajouter les corrections (au fur et à mesure) dans ce post. Comme ça les autres zéros pourront comparer et éviter les même erreurs que moi :)

        1. #include <iostream>
        2. #include <ctime>
        3. #include <string>
        4. #include <fstream>
        5. using namespace std;
        6. int nombreale(int i);
        7. string motmyst(int nombrealeatoire);
        8. int main()
        9. {
        10.         char y='Y';
        11.         char recom='Y';
        12.         //Intro
        13.                 cout<<"\t\t### Le jeu du pendu ###\n\n";
        14.                 cout<<"Vous demarrez avec 10 chances"<<endl;
        15.                 cout<<"Trouvez le mot avant d'epuiser vos chances!\n\n"<<endl;
        16.         do
        17.         {
        18.                 char choixLettre=0;
        19.                 int coup=10;
        20.                 int bravo=0;
        21.                 char n='n';
        22.                 int nombremot=0;
        23.                 nombremot=nombreale(nombremot)-1;
        24.                 //cout<<nombremot<<endl;
        25.                 //nombrealeatoire
        26.                 int nombrealeatoire;
        27.                 srand((int)time(NULL));
        28.                 nombrealeatoire=rand()%nombremot;
        29.                 if (nombrealeatoire==0)
        30.                         nombrealeatoire=1;
        31.                 else
        32.                         nombrealeatoire=nombrealeatoire;
        33.                 //cout<<nombrealeatoire<<endl;
        34.                 //mot mystere
        35.                 string motmysta;
        36.                 motmysta=motmyst(nombrealeatoire);
        37.                 //cout<<motmysta<<endl;
        38.                 size_t size = motmysta.size() + 1;
        39.                 char * motmystsC = new char[ size ];
        40.                 strncpy( motmystsC, motmysta.c_str(), size );
        41.                 //cout << motmystsC << '\n';
        42.                 //cout<<motmystsC<<endl;
        43.                 int longueurmot=strlen(motmystsC);
        44.                 //cout<<longueurmot<<endl;
        45.                 char motcache[26]={0};
        46.                 int j=0;
        47.                 do
        48.                 {
        49.                     motcache[j]='*';
        50.                     j++;
        51.                 }while(j<longueurmot);
        52.                 //cout<<"Le mot cache est : "<<motcache<<endl;
        53.                 //
        54.                 //cout<<"Le mot est: "<<motcache<<endl;
        55.                 int chance=10;
        56.                 do
        57.                 {
        58.                 //cout<<"Le mot est: "<<motmystsC<<endl;
        59.                 cout<<"Le mot est: "<<motcache<<endl;
        60.                 int m=0;
        61.                 int ok=0;
        62.                 cout<<"Il vous reste "<<chance<<" chance(s)"<<endl;
        63.                     if (chance==0)
        64.                         {
        65.                                 cout<<"Desole vous avez perdu"<<endl;
        66.                                 cout<<"Le mot etait: "<<motmystsC<<endl;
        67.                                 break;
        68.                         }
        69.                 cout<<"faites votre choix: ";
        70.                 cin>>choixLettre;
        71.                 choixLettre = toupper(choixLettre);
        72.                 cout<<"\n";
        73.                 for (m=0;m<longueurmot;m++)
        74.                 {
        75.                         if (motmystsC[m]==choixLettre)
        76.                                 {
        77.                                 motcache[m]=choixLettre;
        78.                                 ok=1;
        79.                                 }
        80.                         if (ok==0)
        81.                                 chance--;
        82.                 //cout<<motcache<<endl;
        83.                 if (strcmp(motmystsC,motcache)==0)
        84.                 {
        85.                         bravo=1;
        86.                         cout<<"\n\nbravo vous avez trouve le mot mystere qui etait: "<<motcache<<endl;   
        87.                 }
        88.                 }while (bravo==0);
        89.                 do
        90.                 {
        91.                         cout<<"Voulez vous recommencer ? Y/N : ";
        92.                         cin>>y;
        93.                         cout<<"\n";
        94.                         y = toupper(y);
        95.                         if (y!='Y'&& y!='N')
        96.                                 cout<<"Veuillez indiquer votre choix par Y ou N!"<<endl;
        97.                 }while(y!='Y'&& y!='N');
        98.                 bravo=0;
        99.                 delete [] motmystsC;
        100.         }while(y==recom);
        101.         system ("PAUSE");
        102.             return 0;
        103.         }
        104.         //lecture_fichier_et_nombre_aleatoire
        105.         int nombreale(int i)
        106.         {
        107.                 fstream fichier;
        108.                 fichier.open("dico.txt",ios::in|ios::out|ios::app);
        109.                 if (fichier)
        110.                 {
        111.                         string mot;
        112.                         i=0;
        113.                         while(i++,getline(fichier,mot));
        114.                                   /*cout<<mot<<endl;*/
        115.                 }
        116.                 fichier.close();
        117.                 return i;
        118. }
        119. //piochemotmyst
        120. string motmyst(int nombrealeatoire)
        121. {
        122.         fstream fichier;
        123.         fichier.open("dico.txt",ios::in|ios::out|ios::app);
        124.         string piochemotmyst;
        125.         int compteur=0;
        126.         if(fichier)
        127.         {
        128.                 do
        129.                 {
        130.                         compteur++;
        131.                         getline(fichier,piochemotmyst);
        132.                 }while(compteur!=nombrealeatoire);
        133.         return piochemotmyst;
        134.         }
        135.         fichier.close();
        136. }
        • Partager sur Facebook
        • Partager sur Twitter
          19 août 2007 à 0:31:07

          C'est déjà plus clair, mais c'est encore un exemple parfait de code mélangeant le C et le C++ ;) J'ai cru comprendre que tu te basais sur le cours de M@teo21 pour faire ce jeu de pendu en C++, mais ce tuto n'est pas encore assez avancé pour que l'on puisse s'en servir comme cela.

          En C++, la bibliothèque standard,nommée STL (Standard Template Library), apporte beaucoup de nouvelles notions (que M@teo21 n'a pas encore détaillé), notions qui devraient apparaître plusieurs fois dans un code comme celui-ci. Par exemple, en C++, l'utilisation d'un tableau de char pour représenter une chaîne de caractères est tout à fait obsolète (sauf dans des cas bien spécifiques). On utilise à la place la classe String (si tu n'as pas de notion en Programmation Orientée Objet, le terme de classe doit te paraître très flou). Dans ton code :
          1. #include <string>

          signifie que tu vas utiliser la classe String (ce que tu ne fais pas, cette directive est donc inutile).

          Aussi, en C la valeur VRAI (TRUE) et representée par l'entier 1, et la valeur FAUX (FALSE) est représentée par l'entier 0. On nomme cela le système booléen, du mathématicien Boole qui l'a créé.
          En C++, on a un nouveau type de donnée : le type bool. Une variable booléenne (de type bool) peut prendre les valeurs true ou false, représentant l'entier 1 et l'entier 0 du C respectivement.

          Tu utilises bon nombre de variables booléennes dans ce code, je pense que tu devrais les convertir. Ta variable bravo, par exemple, devrait être de type bool (et initialisée à false).

          Dernière chose. L'inclusion de la librairie ctime ets parfaitement légale, mais la plupart du temps avoir recours à des fonctions C est une mauvaise idée. Normalement, le C++ a déjà ce qu'il faut. Je ne me souviens plus de l'équivalent C++ de <time.h> (il y a de grande chance que ce soit <time> :p )...

          Apprends le C++ plus en profondeur avant de vouloir faire de bon programme avec ;) .

          Essaye de t'initier à la programmation objet avec un bon bouquin, puis lit un ouvrage de référence sur C++ (si tu veux vraiment l'apprendre, car l'apprentissage de C++ est très difficile). Ils proposent pleins de bons ouvrages sur www.developpez.com.
          • Partager sur Facebook
          • Partager sur Twitter
            19 août 2007 à 8:03:47

            Salut,
            Merci pour ton aide et tes conseils. :)
            En fait, je vais essayé "d'oublier" le C pour éviter les mélanges à l'avenir ;)

            Sinon, je pense que je vais acheter "Le langage C++" de Jesse Liberty.
            En attendant, il y a aussi Thinking In C++ (dont on peut en plus trouver la traduction sur dev.com).

            Voilà, là je pense que j'ai de la lecture pour l'hiver :)

            A+

            Livai
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 août 2007 à 12:00:24

              Citation : &ltZer0&gt

              salut ! :)

              Il y a clairement un problème dans le code (qui n'empêche cependant pas son fonctionnement). En effet, C et C++ sont deux langages (très) différents. Tu sembles dire que tu as fait ce code en C++, avec le tuto de M@teo21 qui porte sur... le C.

              Je suis parti du principe que tu as voulu coder le pendu du tuto en C++. A ce moment là, cest lignes ont un serieux problème :

              1. #include <iostream>
              2. #include <stdlib.h>
              3. #include <stdio.h>
              4. #include <time.h>
              5. #include <string>
              6. #include <fstream>
              7. #include <cstring>



              Tu as inclu trois librairies spécifiques au C !

              1. #include <stdlib.h>
              2. /* Il s'agit d'une partie de la bibliothèque standard C. Rien à voir avec le C++ */
              3. #include <stdio.h>
              4. /* Il s'agit du mécanisme de flux d'entrée et de sortie du C. L'équivalent en C++ et iostream (input output stream, soit flux d'entrée/sortie). Tu as inclu le système de flux du C ET du C++. Cela n'est pas du tout correct ! */
              5. #include <time.h>
              6. /* Encore une fois, cette librairie est une librairie C. Si tu souhaites l'utiliser dans un programme C++, tu dois inclure <ctime> (toutes les librairies C ont un équivalent C++ commençant par 'c'. Pour reprendre les deux erreurs précédents, tu aurais dû inclure <cstdio> et <cstdlib>.) */
              7. #include <string>
              8. #include <cstring>
              9. /* Erreur pus grave, qui montre qu'une notion n'est pas assimilée. Soit on code en C, soit en C++. Mélanger les deux crée un code sale, obsolète, et souvent incompatible. Tu fais croire au lecteur que tu vas utiliser le système de chaîne C++ (<sting>), mais, surprise, tu inclus le système de chaîne C (<string.h>). C'est n'importe quoi !*/



              Voici aussi deux remarques :

              1. using namespace std;
              2. /* Même si M@teo21 les utilisent dans son cours, il est déconseillé d'encombrer l'espace de nom global de cette façon. Mais là c'est pas ta faute ;) */
              3. int main(int argc, char* argv[])
              4. {
              5.   ...
              6. }
              7. /* Sais-tu à quoi servent les arguments argc et **argv ? Non ? Alors pourquoi les utilises-tu ? En C, on avait l'excuse de "c'est l'habitude", mais en C++ cela est intolérable. Tu dois définir "main" sans argument (tu peux ou non spécifier "void"), sauf si bien sûr tu compte les utiliser. */



              Je n'ai regarder que les premières lignes de ton code. Tu pensais que les deux langages se mélangeaient, ou bien c'est une (énorme) erreur d'innatention ?

              A+. Normalement, j'ai pas dit de bêtise :) .



              Il y a des points sur lesquels je suis d'accord, et d'autres non. Déjà, les headers ne sont ni des librairies, ni des bibliothèques ; comme je viens de l'écrire, ce sont des headers. D'autre part, inclure cstdlib est correct, même en C++, beaucoup de programmes écrits par des gros barbus le font. J'ai aussi remarqué que tu disais qu'il existait un équivalent C++ des lib(raries) du C, ce qui est bien évidemment faux, puisque ce sont les mêmes. Même les headers le sont, le 'c', justement, indique au préprocesseur de rechercher le header dans le dossier include du C. Enfin, dans le cas général, inclure <cstring> avec <string> est correct, dans la mesure où l'on veut peut être utiliser des fonctions C comme memset(), ou bien memcpy(), beaucoup plus rapides. Sur ce point, je me trompe peut être, mais je ne connaît pas d'équivalent C++.

              PS : Le bouquin de Jesse est de la grosse merde, tu n'y vois même pas les grands points du C++ (je parle de celui où l'on apprend à coder un jeu nommé Decryptix, si je me souviens bien).
              • Partager sur Facebook
              • Partager sur Twitter
                19 août 2007 à 20:07:00

                Pour ce qui est des librairies, c'est exact j'aurais du parler d'en-têtes...

                Sinon je pensais que les en-têtes débutants par un 'c' étaient une alternative C++ un peu remaniée, je ne me doutais pas que c'était les même :o .

                Pour <string.h> et <string>, je ne suis pas d'accord. Mélanger le C et le C++, cay mal :colere2: . Je doute que les fonctions C soient plus rapides que celles C++ de façon significative...
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  19 août 2007 à 20:38:13

                  Bah, je connais pas d'alternative à memcpy() en C++, et beaucoup sont dans mon cas, car il n'est pas rare de voir des codes C++ contenant l'usage de cette fonction. Sinon, l'usage de fonction C n'est pas à totalement prohiber. Si tu utilises des fonctions C avec parcimonie, aucune raison de bipper, d'ailleurs la lib standard C++ utilise l'I/O du C hein, sauf que toi, tu t'en rends pas compte.

                  Cela dit, l'algorithme de la STL std::fill_n() inclut dans <algorithm> permet de remplacer aisément memset() (d'ailleurs utilisé dans l'implémentation).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 août 2007 à 0:58:48

                    Salut,

                    Citation : Kreeg

                    PS : Le bouquin de Jesse est de la grosse merde, tu n'y vois même pas les grands points du C++ (je parle de celui où l'on apprend à coder un jeu nommé Decryptix, si je me souviens bien).



                    Si tu regardes ici il y a le bouquin dont je parlais. J'ai eu le temps d'un peu le consulter en bibliothèque et je le trouvais pas mal. Tu confirmes que c'est le même que tu trouvais nul?

                    Voilà la table des matières:

                    Bien débuter en C++
                    Anatomie d'un programme C++
                    Variables et constantes
                    Expressions et instructions
                    Fonctions
                    La programmation orientée objet
                    Déroulement d'un programme
                    Pointeurs
                    Références
                    Fonctions avancées
                    Analyse et conception orientée objet
                    Héritage
                    Tableaux et chaînes
                    Polymorphisme
                    Classes et fonctions spéciales
                    Héritage avancé
                    Les flux
                    Espaces de nommage
                    Les modèles
                    Gestion des erreurs et exceptions
                    Et maintenant ?
                    Hexadécimal et binaire
                    Priorité des opérateurs

                    A+

                    Livai
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      20 août 2007 à 14:14:40

                      Ce n'est donc à priori pas le bouquin que je pensais. De toutes façons, ce bouquin n'a pas l'air conséquent. Prends un meilleur bouquin.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 août 2007 à 17:42:34

                        @livai : travail sur ton indentation : dans chaque bloc (entre { et } ) tu indente tout, apres un if sans bloc tu indente une ligne, etc. sinon ça fait des gros bloc lourd à lire pour nous. lorsque le code est bien indenté la lecture est très rapide et les erreurs ressortent comme par magie ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 août 2007 à 18:51:44

                          Citation : Mattex

                          @livai : travail sur ton indentation : dans chaque bloc (entre { et } ) tu indente tout, apres un if sans bloc tu indente une ligne, etc. sinon ça fait des gros bloc lourd à lire pour nous. lorsque le code est bien indenté la lecture est très rapide et les erreurs ressortent comme par magie ;)




                          Salut Mattex, je vais essayer de corriger tout ça prochainement. Merci pour ton aide.

                          Livai

                          PS: je vois que l'on est dans le même fuseau horaire...moi aussi je suis de Montréal ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 août 2007 à 20:19:28

                            Effectivement, je suis un montréalais :p

                            enfin bonne chance l'indentation fait parti des bonnes pratiques, une fois acquisent c'est un réflexe. Les bonnes pratiques aident à améliorer la rapidité et l'efficacité d'un(e) programmeur(e)
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Tuto (jeu du pendu)

                            × 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