Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plus Ou Moins >>

    4 janvier 2006 à 14:31:35

    Salut tout le monde!!
    Je viens vous montrer mon Plus Ou Moins

    On s'en fou un peu :-°

    C'est pas grave je vous le montre quand même XD

    Qu'est ce qu'il a de plus??

    #Toutes les options que Mathéo voulait nous infliger en plus. (= mode de diffculté, nouvelle partie, mode 2joueurs, et compteur de coups)
    ainsi que...
    #Dans le mode 1Joueur: 1. Le mode solo, 2. Le mode Limited (une sorte de contre la montre)
    #Dans le mode 2Joueurs:1. Mode Team, 2. Mode Versus.

    Voilà ^^ Un petit merci à Pseadeau_nyme qui me la débugger à sa facon ;)

    CODES SOURCE
    Main.c
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include "Debut.h"
    4. int main(int argc, char *argv[])
    5. {
    6.   AvantPropos();
    7.   Menu();
    8.   system("PAUSE");      
    9.   return 0;
    10. }


    Debut.c
    1. /* Affichage Debut.c */
    2. /* Pour le forum du SiteDuZero.com */
    3. #include "Debut.h"
    4. #include <stdio.h>
    5. #include <stdlib.h>
    6. void AvantPropos()
    7. {
    8.      printf("**********************************\n");
    9.      printf("Bienvenu dans le jeu du + ou -\n");
    10.      printf("SiteDuZero.com\n");
    11.      printf("**********************************\n\n");
    12.      printf("Explications:\nVous pouvez y jouer seul ou a 2. Le but est le meme: trouver le nombre mystere!\nMerci de ne pas mettre de donnee erronee puisque c'est votre PC, et non le mien qui plantera ;)\nBon jeu!\n\n");  
    13. }
    14.       // Page de présentation
    15. void Menu()
    16. {
    17.      int NbrPlayer;
    18.      printf("Nombre de Players:\n (1) Un joueur\n (2) Deux joueurs\n Choix: ");
    19.      scanf("%d", &NbrPlayer);
    20.      switch (NbrPlayer)
    21.      {
    22.             case 1: jouer(1);
    23.             break;
    24.             case 2: jouer(2);
    25.             break;
    26.             default: printf("La prochaine fois, ecoute les consignes hein! ;)\n");
    27.             system("PAUSE");
    28.      }
    29. }
    30.      // Menu choix du nombre de joueurs
    31.      // Unnnnnnnnnnnnnnnnnnnnnnnnnn JOUEUUUUUUUUUUUUUUUUUUUUUURS //
    32. int jouer(int joueurs)
    33. {
    34.     int choix;
    35.     if (joueurs == 1)
    36.     {  
    37.                 system("CLS");
    38.               printf("\n[Version 1Player], Choississez votre mode de jeu\n 1. Solo\n 2. Limited\n Choix: ");
    39.               scanf("%d",&choix);
    40.               if (choix == 1)
    41.               {
    42.                      modeSolo();  
    43.               }          
    44.               else if (choix == 2)
    45.               {
    46.                      modeLimited();
    47.               }
    48.               else
    49.               {
    50.               printf("\nSaisissez un nombre valide ou quittez");
    51.               return 1;
    52.               }
    53.     }
    54.     else if (joueurs == 2)
    55.     {
    56.                system("CLS");
    57.                printf("\n[Version 2Players]\n Choississez votre mode de jeu\n 1. Versus\n 2. Team\n Choix: ");
    58.                scanf("%d",&choix);
    59.                if (choix == 1)
    60.                {
    61.                      jouerDuo(1);
    62.                }
    63.                else if(choix == 2)
    64.                {
    65.                      jouerDuo(2);
    66.                }
    67.                else
    68.                {
    69.                printf("Saisissez un nombre valide ou quittez");
    70.                return 1;
    71.                }
    72.     }
    73.     else
    74.     {
    75.          printf("Saisissez un nombre valide ou quittez");
    76.          return 1;
    77.     }
    78. }
    79.      // Mode 2 joueurs


    Debut.h
    1. void AvantPropos();
    2. void Menu();
    3. int jouer(int joueurs);


    UnJoueur.c

    1. /* Affichage UnJoueur.c by Snakif */
    2. /* Créé pour le forum du SiteDuZero.com */
    3. #include <stdio.h>
    4. #include <stdlib.h>
    5. #include <time.h>
    6. #include <math.h>
    7. #include "UnJoueur.h"
    8. void modeSolo()
    9. {
    10.      int difficulte;
    11.      system("CLS");
    12.      printf("\n[Mode Solo], Choississez votre Difficulte\n 1. Easy (100)\n 2. Normal (1 000)\n 3. Hard (10 000)\n");
    13.      scanf("%d", &difficulte);
    14.      switch (difficulte)
    15.      {
    16.             case 1:
    17.             jouerSolo(1,1);
    18.             break;
    19.             case 2:
    20.             jouerSolo(1,2);
    21.             break;
    22.             case 3:
    23.             jouerSolo(1,3);
    24.             break;
    25.             default:
    26.             printf("Je suis mort de rire..., Choix: ");
    27.             scanf("%d", &difficulte);
    28.      }
    29. }
    30. void modeLimited()
    31. {
    32.      int modeLimited;
    33.      system("CLS");
    34.      printf("[Mode Limited], Choississez votre mode de jeu\n 1. Easy (20coups)\n 2. Normal (15coups)\n 3. Hard (10coups)\n Le tout compris entre 1 et 100\n");
    35.      scanf("%d", &modeLimited);
    36.      jouerSolo(2,modeLimited);
    37. }
    38.      /////////////////// Choix Mode solo du mode 1 joueur  
    39. void jouerSolo(int jeu,int difficulte)
    40. {
    41.      long nombreMystere, sonChoix;
    42.      long nombreEntre = 0, compteur = 0;
    43.      long max, min = 1;
    44.      int choixLimited, fini = 0;
    45.      srand(time(NULL));
    46.      if (jeu == 1)
    47.      {
    48.           max = calcMax(difficulte);  
    49.           nombreMystere = (rand() % (max - min + 1)) + min;
    50.           printf("\nL'ordinateur a choisi un nombre. Essaye de le trouver! (nombre compri entre 1 et %ld)\n",max);
    51.           printf("Nombre: ");
    52.           do
    53.           {
    54.                 scanf("%ld",&nombreEntre);
    55.                 compteur++;
    56.                 if (nombreEntre < nombreMystere)
    57.                 {
    58.                       printf("\nC'est plus! Nombre: ");
    59.                 }
    60.                 else if(nombreEntre > nombreMystere)
    61.                 {
    62.                        printf("\nC'est moins! Nombre: ");
    63.                 }
    64.                 else
    65.                 {
    66.                        printf("\nBravo! Tu as trouve le nombre mystere en %d tentative(s)", compteur);
    67.                 }
    68.           }
    69.           while (nombreEntre != nombreMystere);
    70.           printf("\n\nQue veux tu faire ?");
    71.           printf("1. Recommencer || 2. Aller au menu || 3. Quitter\nChoix: ");
    72.           scanf("%d", &sonChoix);
    73.           switch (sonChoix)
    74.           {
    75.                case 1:
    76.                modeSolo();
    77.                break;
    78.                case 2:
    79.                Menu();
    80.                break;
    81.                case 3:
    82.                printf("\n\nA bientot !");
    83.                system("PAUSE");
    84.                break;
    85.                default:
    86.                printf("Je pense que ca veut dire: j'en ai marre XD");
    87.                system("PAUSE");
    88.          }
    89.      }
    90.      else if (jeu == 2)
    91.      {
    92.           max = 100;
    93.           compteur = (20 - ((difficulte - 1) * 5)) - 1;
    94.           nombreMystere = (rand() % (max - min + 1)) + min;
    95.           printf("\nL'ordinateur a choisi un nombre. Essaye de le trouver en %dcoups!\n",compteur + 1);
    96.           printf("\nNombre: ");
    97.           scanf("%ld",&nombreEntre);
    98.           do
    99.           {
    100.                     compteur--;  
    101.                     if (nombreEntre < nombreMystere)
    102.                     {
    103.                       printf("\nC'est plus! Nombre: ");
    104.                     }
    105.                     else if(nombreEntre > nombreMystere)
    106.                     {
    107.                        printf("\nC'est moins! Nombre: ");
    108.                     }
    109.                     else
    110.                     {
    111.                     printf("\nBravo! Tu as trouve le nombre mystere");
    112.                     fini = 1;
    113.                     }
    114.                     scanf("%ld",&nombreEntre);
    115.                     if (compteur == 0)
    116.                     {
    117.                      printf("\nPerdu");
    118.                      fini = 1;
    119.                     }    
    120.                }
    121.                while (fini != 1);
    122.           printf("\n\nQue veux-tu faire?\n");
    123.          printf("1. Recommencer || 2. Aller au menu || 3. Quitter\nChoix: ");
    124.          scanf("%d", &sonChoix);
    125.          switch (sonChoix)
    126.          {
    127.               case 1:
    128.                   modeLimited();
    129.                   break;
    130.               case 2:
    131.                   Menu();
    132.                   break;
    133.               case 3:
    134.                   printf("\n\nA bientot !");
    135.                   system("PAUSE");
    136.                   break;
    137.               default:
    138.                   printf("Reponse erronee T__T\" ");
    139.                   system("PAUSE");
    140.          }
    141.      }              
    142. }
    143. long calcMax(int difficulte)
    144. {
    145.      int i, resultat = 1;
    146.      for (i = 0; i <= difficulte; i++)
    147.      {
    148.          resultat *= 10;
    149.      }
    150. return resultat;
    151. }


    UnJoueur.h
    1. void modeSolo();
    2. void modeLimited();
    3. void jouerSolo(int jeu,int difficulte);
    4. long calcMax(int difficulte);


    DeuxJoueurs.c
    1. /* Affichage DeuxJoueurs.c by Snakif */
    2. /* Créé pour le forum du SiteDuZero.com */
    3. #include <stdio.h>
    4. #include <stdlib.h>
    5. #include <time.h>
    6. #include "DeuxJoueurs.h"
    7. void jouerDuo(int jeu)
    8. {
    9.      long joueur1, joueur2, nombreMystere, compteur = 0, sonChoix;
    10.      long min = 1, max = 1000;
    11.      if (jeu == 1)
    12.      {
    13.           system("CLS");
    14.           printf("\nLe Joueur 1 ecris un nombre, le Joueur 2 doit le trouver.\n Joueur1: Bonne chance ;D\nJoueur2: Pas de nombre negatif, dit entre quoi et quoi ce nombre se trouve (1<100, 1<1000,...)\n En attente du nombre: ");
    15.           scanf("%ld", &joueur2);
    16.           system("CLS");
    17.           do
    18.           {
    19.                 printf("\n\nJoueur1 donne: ");
    20.                 scanf("%ld", &joueur1);
    21.                 compteur++;
    22.                 if (joueur1 < joueur2)
    23.                 {
    24.                      printf("\nC'est moins!");
    25.                 }
    26.                 else if (joueur1 > joueur2)
    27.                 {
    28.                      printf("\nC'est plus!");
    29.                 }
    30.                 else
    31.                 {
    32.                      printf("\nBravo! Tu as trouve le nombre du Joueur2 en %ld tentative(s)!", compteur);
    33.                 }
    34.            }
    35.            while (joueur1 != joueur2);
    36.            printf("\n\nQue veux-tu faire?");
    37.            printf("1. Recommencer || 2. Aller au menu || 3. Quitter\nChoix: ");
    38.            scanf("%ld", &sonChoix);
    39.            switch (sonChoix)
    40.            {
    41.                  case 1:
    42.                      jouerDuo(1);
    43.                      break;
    44.                  case 2:
    45.                      Menu();
    46.                      break;
    47.                  case 3:
    48.                      printf("\n\nA bientot !");
    49.                      system("PAUSE");
    50.                      break;
    51.                  default:
    52.                      printf("*rire demoniaque** :D");
    53.                      system("PAUSE");
    54.             }
    55.      }
    56.      else if(jeu == 2)
    57.      {
    58.          srand(time(NULL));
    59.          nombreMystere = (rand() % (max - min + 1)) + min;
    60.          system("CLS");
    61.          printf("\nJoueur1 et Joueur2 sont \"allies\" et doivent trouver le nombre mystere de l'ordi.\nQui le trouvera en premier?\n");
    62.          printf("Pour ce mode de jeu, la difficulte est normal; chiffre 1<1 000\n");
    63.          do
    64.          {
    65.               compteur++;
    66.               printf("\n\nJoueur1 donne: ");
    67.               scanf("%ld", &joueur1);
    68.               if (joueur1 < nombreMystere)
    69.               {
    70.                    printf("C'est plus !");
    71.               }
    72.               else if(joueur1 > nombreMystere)
    73.               {
    74.                    printf("C'est moins !");
    75.               }
    76.               else
    77.               {
    78.                    printf("\nBravo Joueur1 tu as trouve le nombre mystere!\n Merci au Joueur2 de t'avoir bien aide ;)\n Vous l'avez trouve en %ld tentatives",compteur);
    79.               }
    80.              if (joueur1 != nombreMystere)
    81.              {
    82.                    printf("\n\nJoueur2 donne: ");
    83.                    scanf("%ld", &joueur2);
    84.                    compteur++;
    85.                    if (joueur2 < nombreMystere)
    86.                    {
    87.                         printf("C'est plus!");
    88.                    }
    89.                    else if (joueur2 > nombreMystere)
    90.                    {
    91.                         printf("C'est moins!");
    92.                    }
    93.                    else
    94.                    {
    95.                         printf("\nBravo Joueur2 tu as trouve le nombre mystere!\n Merci au Joueur1 de t'avoir bien aide ;)\n Vous l'avez trouve en %ld tentatives", compteur);
    96.                    }
    97.              }
    98.          }
    99.          while (joueur2 != nombreMystere || joueur1 != nombreMystere);
    100.          printf("\n\nQue veux-tu faire?");
    101.          printf("1. Recommencer || 2. Aller au menu || 3. Quitter\nChoix: ");
    102.          scanf("%d", &sonChoix);
    103.          switch (sonChoix)
    104.          {
    105.                 case 1:
    106.                     jouerDuo(2);
    107.                     break;
    108.                 case 2:
    109.                     Menu();
    110.                     break;
    111.                 case 3:
    112.                     printf("\n\nA bientot !");
    113.                     system("PAUSE");
    114.                     break;
    115.                 default:
    116.                     printf("Rien parceque tu as tape un mauvais chiffre je quitte pour toi le logiciel :D");
    117.                     system("PAUSE");
    118.          }
    119.      }
    120. }


    DeuxJoueurs.h
    1. void jouerDuo(int jeu);


    Et voilàààààààààààààààà :p
    Vous avez tout les droits sur ces codes (modifications, améliorations, etc.). Le truc à pas faire c'est de seulement remplacer mon nick par le votre ;)

    Have fun++
    • Partager sur Facebook
    • Partager sur Twitter
      4 janvier 2006 à 14:38:07

      lol Snakif ^^ sa va bien? ^^

      Sinon ton code est pas mal :D

      Continue comme sa ;)
      • Partager sur Facebook
      • Partager sur Twitter
        4 janvier 2006 à 14:46:00

        Hi))Php!!
        On ne se serrai pas déjà croiser sur des forums dit.. orienté informatique?? :D
        • Partager sur Facebook
        • Partager sur Twitter
          4 janvier 2006 à 16:18:07

          Bonjour,
          oups desolé j'ai rien dit, lol j'ai tellement regardé le code lol :o
          • Partager sur Facebook
          • Partager sur Twitter
            4 janvier 2006 à 16:23:45

            Relis la fin du message :)
            • Partager sur Facebook
            • Partager sur Twitter
              4 janvier 2006 à 20:42:30

              Rien rien PuN1SH a édité son message :)

              Rahh sa me donne envie d'y jouer mais bon pas trop le temps pour le moment faut que je finnise mon site :p:lol:
              • Partager sur Facebook
              • Partager sur Twitter
                4 janvier 2006 à 22:19:10

                J'aime pas trop la facon de decouper ton programme en fonctions, enfin plutot la facon de les appeler.

                Pour moi le void main sert à structurer ton programme !

                Ici tu t'en sers comme d'un lanceur et aprés il ne fait rien, alors que c'est lui qui devrait etre le "grand gourou" de ton programme.
                Il devrait faire appel au menu, puis aprés gerer le resultat et choisir si il lance le un joueur ou le deux joueurs ... et aprés le 1 joueur et le 2 joueurs deviennent maitre à bord et à la fin rendent la main à main qui propose de recommencer une partie ou de quitter ...

                enfin ca reste mon humble avis
                • Partager sur Facebook
                • Partager sur Twitter
                  4 janvier 2006 à 23:05:07

                  J'ai la casi même façon de coder le main. Il vaut mieux éviter d'utiliser main comme 'code principal' parce qu'on ne peut pas faire appel à celui ci dans un autre void. (Enfin je crois :D , moi c'est pour ça que je le sépare distinctement des autres parties, il sert juste à annoncer le titre du programme.)

                  Edit: Le code est beaucoup plus compréhensible comme tu l'as découper, je dit que c'est un bon travail ;) même si j'ai pas encore compiler le projet.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 janvier 2006 à 0:20:30

                    Euh ... Sans vouloir vous offenser moi je suis entièrement d'accord avec Sissere: C'est main qui doit gérer le programme.

                    Dans Main: une boucle principale relançant le jeu tant qu'il n'a pas été stoppé.

                    Ensuite les autres fonctions gèrent, pas avant ...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 janvier 2006 à 1:11:15

                      Tant que c'est compréhensible sans trop de mal, je m'en fiche moi de ce que fait main mais bon, mon avis.

                      Par contre, l'indentation est inconsistante ainsi que les noms de fonction.

                      Un point important de l'indentation pour moi entre autre :
                      "outdent" tes labels, sinon, on ne voit plus rien...

                      switch (n) {
                      case 1:
                          foo();
                      }

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 janvier 2006 à 5:50:03

                        Bonjour,

                        J'ai bien tout lu ton code et je l'ai essayé ensuite et il y a plusieurs bogues.

                        Au niveau du moment ou l'on gagne dans certains modes il ne nous montre pas le menu. Certains modes ne fonctionnent pas comme celui de Versus et le Team recommence tout seul sans menu comme le Limited je crois. Quelques \n sont manquant et des espaces aussi. Essaies le et tu verras.


                        Bonne chance dans ton autocorrection. Bonnes idées et bon travail mais comme il est long c'est normal qu'il y ait des fautes.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 janvier 2006 à 9:23:35

                          en fait pour le main, je l'ai lu et je me suis dit :

                          Ah son programme il lance l'affichage de l'avant propos, aprés il affiche un menu, et ah c'est fini ... bon doit falloir fouiller. Le main doit etre vu comme la colonne vertebrale du programme. Bien entendu le tiens fonctionne, mais si tu as besoin de te resservir du menu pour un autre programme, il faut tout reprogrammer ton menu. Une fonction doit faire quelque chose de précis, et le faire bien, la on part dans une fonction qui appele une sous fonction ... et ca pour un programme simple.

                          Je ne critique pas le programme qui a vu de nez doit marcher (je n'ai pas explorer le code à fond mais je te crois), juste la forme, ca pourra te servir pour la suite je pense. Ca implique une organisation et une reflexion un peu differente. Il faut essayer de structurer mais en gardant à l'esprit que dieu c'est le main, et que les autres font ce que main demande ! à la limite que tu integres l'avant propos au menu n'est pas choquand, mais que main ne soit meme pas le decideur de "multijoueur" ou "modo solo" ca me chaffouine, rien de grave juste la forme.

                          Sinon pour l'indentation je donnerais celle que j'utilise et que je trouve claire :


                          if (choix == 1)
                              {
                               modeSolo();   
                              }         
                              else if (choix == 2)
                                      {
                                       modeLimited();
                                      }
                                      else
                                          {
                                           printf("\nSaisissez un nombre valide ou quittez");
                                           return 1;
                                          }
                             


                          tout ca reste mon avis personnel que je partage mais n'est pas la seule ou la meilleure facon de faire, juste la mienne.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 janvier 2006 à 10:50:17

                            Globalement, je recommande celle de Linux, K&R avec pas de 8. Je déconseille fortement ton indentation sissere, parce que les éléments de même niveau (dans un même "bloc lexical") ne sont pas sur la même colonne. On a l'impression que le else if s'exécute dans le bloc du if, etc.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 janvier 2006 à 15:29:57

                              oui mais justement le else if est dependant du if ...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 janvier 2006 à 16:29:57

                                Pas une question de dépendance, question de niveau.
                                Chaque colonne doit correspondre à un niveau.
                                Or, le else if est exécuté au même niveau que le if, donc devrait être sur la même colonne.
                                Ce n'est pas histoire de tout mettre sur la droite histoire de dire qu'on indente, si l'indentation ne fait ressortir aucune structure, c'est inutile.
                                Dans ton code, à part compter les }, il n'y a aucune manière visuelle de savoir à quel niveau l'on se trouve. Avec une indentation normale, les alternatives sont au même niveau, tu sais tout de suite qu'à un même niveau tu auras les différentes alternatives du if, pas besoin d'aller chercher huit ou seize colonnes plus à droite, ce qui est fortement trompeur car tu risques de confondre les instructions à l'intérieur d'un bloc et celles qui font partie du bloc alternatif.
                                Juste pour ça, ton style embrouille plus qu'autre chose.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 janvier 2006 à 17:06:31

                                  En fait moi je trouve ue c'est l'indentation de Dev-Cpp qui est archi nul. J'ai l'habitude de l'espace comme espace la valeur de Tab (je sais pas combien ça fait)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 janvier 2006 à 17:33:33

                                    La valeur de l'espace varie mais traditionnellement c'est 8, et ça se configure.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 janvier 2006 à 17:58:43

                                      Tant que sa marche et tant que je me comprends...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 janvier 2006 à 18:03:19

                                        Tant que ça marche = A bannir
                                        M'enfin visiblement, tu n'as aucune envie d'écouter les autres. Si tu ne codes que pour toi, il n'y a aucune raison pour que les autres t'aident ; sur ce, je te laisse dans ta bêtise...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          5 janvier 2006 à 18:56:51

                                          Défendre un point de vu et critiquer un autre, il y a une marge non?? Je veux bien que vous me donner des astuces (comme a bannir ce style de pensé) ou que vous me dites là où ne ca va pas. Mais pas besoin de le faire sur ce ton, d'accord?
                                          EDIT: Je ne parlais pas forcement de toi :)

                                          Sur ce bonne soirée qd meme ;)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            5 janvier 2006 à 19:03:27

                                            sur ce coup rz0 à raison (0 oui j'avais oublié que les modos avaient toujours raison :p ), si tu ne veux pas écouter les autres tu n'iras pas loin...
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              5 janvier 2006 à 19:15:15

                                              Il y a eu un malentendu ;)
                                              J'écoute oui, j'apprends, mais ce code je l'ai fais à l'arrache très vite, et là j'ai pas trop envi de m'y replonger. Sinon éventuelles suggestions ou autre sont bienvenu ;)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                5 janvier 2006 à 22:34:03

                                                Citation : rz0

                                                Pas une question de dépendance, question de niveau.
                                                Chaque colonne doit correspondre à un niveau.
                                                Or, le else if est exécuté au même niveau que le if, donc devrait être sur la même colonne.
                                                Ce n'est pas histoire de tout mettre sur la droite histoire de dire qu'on indente, si l'indentation ne fait ressortir aucune structure, c'est inutile.
                                                Dans ton code, à part compter les }, il n'y a aucune manière visuelle de savoir à quel niveau l'on se trouve. Avec une indentation normale, les alternatives sont au même niveau, tu sais tout de suite qu'à un même niveau tu auras les différentes alternatives du if, pas besoin d'aller chercher huit ou seize colonnes plus à droite, ce qui est fortement trompeur car tu risques de confondre les instructions à l'intérieur d'un bloc et celles qui font partie du bloc alternatif.
                                                Juste pour ça, ton style embrouille plus qu'autre chose.



                                                tout simplement pour moi c'est un reflexe de lecture je vois un else je sais qu'il est lié au if qui est decalé un cran à gauche ... ca me parait plus logique, le else vient suite au if, il est bien lié intrinséquement au if, et au moins on voit toutes les accolades (une accolade est seule sur une ligne) à la limite que tu indentes le else à hauteur du if pour moi c'est juste une habitude de lecture, mais dire que mettre l'accolade en fin de ligne améliore la lisibilité d'un code, j'ai toujours emis des gros doutes !
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 janvier 2006 à 22:57:34

                                                  L'accolade "pendante" en fin de ligne c'est pour gagner en espace vertical principalement. De toute façon avec une technique à la K&R, c'est l'indentation qui fait la lisibilité du truc, pas les accolades.

                                                  Mais dans ton cas, je t'aurais prévenu : Ton truc est illisible. Personne ne va lire juste ton else et se dire : "tiens, l'alternative est un cran à gauche et un cran à droite". C'est de l'obfuscation hein :

                                                  if (...)
                                                      {
                                                      /* je suis ici, je veux voir les branches alternatives à celle-ci, je cherche des blocs décalés sur la droite : problème, il y a _plein_ de bloc décalés sur la droite, comment tu veux savoir lequel sans devoir tout lire... */
                                                      ...
                                                          {
                                                              /* je tombe ici, rien à voir... */
                                                              ...
                                                          }
                                                      }
                                                      else if (...)
                                                          {
                                                          }


                                                  Franchement, j'espère ne jamais à lire du code indenté comme ça mais si jamais, tu peux être sûr qu'il passe à indent(1) avant lecture.

                                                  Deux arguments beaucoup plus pratiques : Si personne ne peut lire ton code efficacement ou que personne n'a envie de le lire parce qu'il trouve ça illisible, ça ne sert à rien. Faut pas tout sacrifier pour les autres mais faut quand même utiliser quelque chose que la plupart des gens trouvent correct à lire.
                                                  Le deuxième c'est qu'avec ta méthode, en 10 lignes, je n'ai plus d'espace horizontal. Et oui, faut pas oublier les 80 colonnes.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    6 janvier 2006 à 8:42:55

                                                    ca va tous mes profs et tous mes collégues ont toujours réussis à lire mes codes ;)
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      6 janvier 2006 à 9:35:31

                                                      Mais il le fait exprès ?

                                                      Après il s'étonne qu'on lui dit qu'il ne veut pas apprendre: Ca fait deux fois que rz0 te répète quelques chose, et tu lui a répondu, je cite:

                                                      Citation : Sissere

                                                      Tant que sa marche et tant que je me comprends...



                                                      Citation : Sissere

                                                      ca va tous mes profs et tous mes collégues ont toujours réussis à lire mes codes ;)



                                                      Je te signale que rz0 a une infinité ( ou presque ^^ ) d'années d'expérience en plus que toi, qu'il a déjà lu des milliers de code, certains extremmement complexes, si il te dit ca, c'est qu'il y a une raison tu ne crois pas ??

                                                      De plus, sachant que tu es limité à 80 colonnes, imagines que tu aies un boucle dans une condition dans une fonction quelconque ( = 24 colonnes déjà ), puis que tu aies un if, 3 elseif et un else, ( + 40 colonnes )

                                                      Il te reste donc 8 colonnes pour écrire ton code ??? Laisse moi rire, tu vas pas coder là-dedans quand même ??
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        6 janvier 2006 à 10:29:30

                                                        1) la premiere citation n'est pas de moi donc c'est pas trés trés bien de me faire dire des choses que je n'ai pas dites !

                                                        2) il a vraiment une infinité d'année en plus d'experience que moi (je dis ca par raport à son profil) ?

                                                        3) ensuite ton cas si j'ai vraiment un truc genre :


                                                        function mafunction()
                                                            {
                                                             if (lapin = choucroute)
                                                                 while (truc > bidule)
                                                                     {
                                                                      if (machin)
                                                                          {
                                                                       
                                                                          }
                                                                          else if
                                                                              {
                                                                         
                                                                              }
                                                                              else if
                                                                                  {
                                                                             
                                                                                  }
                                                                                  else if
                                                                                      {
                                                                                 
                                                                                      }
                                                                                      else
                                                                                          {

                                                                                          }

                                                                     }
                                                            }



                                                        je suis assez loin de manger 72 colonnes, aprés je concois que l'indentation ne plaise pas, mais qu'on vienne me dire qu'elle est inutilisable, je doute o_O
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          6 janvier 2006 à 14:09:30

                                                          Effectivement la première citation est de moi, incorigible ce Snakif :p

                                                          Sinon j'essayerai de faire un travail plus propre ;)

                                                          Bonne journée à vous !
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Plus Ou Moins >>

                                                          × 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