Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme utilisation du code ascii

Sujet résolu
    12 novembre 2019 à 13:06:17

    Bonjour,

    j'ai fais ce damier la sauf que mon prof veut qu'il soit fait en code asccii cependant quand j'essaie de le faire en ascii le code est moche car ya beaucoup de repetion car j'arrive pas a faire comme avec mon precedant code quelqu'un peut m'aidez a faire le code que je vais mettre en bas en ascii s'il vous plait 

    voici le code que je dois modifié :

    #include <stdio.h>
    #include <stdlib.h>
    
    #define angleHautGauche 218
    #define angleHautDroit 191
    #define angleBasGauche 192
    #define angleBasDroite 217
    
    #define T 194
    #define Tinverse 193
    #define TcoteDroit 195
    #define TcoteGauche 180
    
    #define BarreVerticale 179
    #define BarreHorizontale 196
    #define croix 197
    #define Blanc 255
    
    void plateau(int x)
    {
        int i, j, k;
    
    
        printf("┌──");
        for (i=1; i<(x); i++)
            printf("──┬──");
        printf("──┐");
        printf("\n│  ");
        for (k=1; k<(x); k++)
            printf("  │  ");
        printf("  │");
        for (j=1; j<(x); j++) {
            printf("\n├──");
            for (k=1; k<(x); k++)
                printf("──┼──");
            printf("──┤");
    
            printf("\n│  ");
            for (k=1; k<(x); k++)
                printf("  │  ");
                printf("  │");
        }
    
        printf("\n");
        printf("└──");
        for (i=1; i<(x); i++)
                printf("──┴──");
        printf("──┘");
    
    }
    int main(void)
    {
        plateau(8);
    
        return 0;
    }
    

    P.S: je continue a assayer de modifier du coup ya met define de code ascii sur ce code mais comme je vous les dit j'arrive pas a juste remplacer par le code ascii pour que ça me donne la meme chose que ce code la 

    • Partager sur Facebook
    • Partager sur Twitter
      12 novembre 2019 à 16:14:15

      Tu peux essayer cet exemple :

      #include <stdio.h>
      
      #define N 8
      
      #define angleHautGauche 218
      #define angleHautDroit  191
      #define angleBasGauche  192
      #define angleBasDroite  217
      
      #define T           194
      #define Tinverse    193
      #define TcoteDroit  180
      #define TcoteGauche 195
      
      #define BarreVerticale   179
      #define BarreHorizontale 196
      #define croix            197
      
      void afficherTable(int table[][N])
      {
        int i, j, k;
      
        printf("%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
        for(i = 0; i < N - 1; i++) {
          printf("%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
        }
        printf("%c\n", angleHautDroit);
      
        for(i = 0; i < N; i++) {
          for(j = 0; j < N; j++) {
            printf("%c %d ", BarreVerticale, table[i][j]);
          }
          printf("%c\n", BarreVerticale);
      
          if(i < N - 1) {
            printf("%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
            for(k = 0; k < N - 1; k++) {
              printf("%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
            }
            printf("%c\n", TcoteDroit);
          }
          else {
            printf("%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
            for(k = 0; k < N - 1; k++) {
              printf("%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
            }
            printf("%c\n", angleBasDroite);
          }
        }
      }
      
      int main(void)
      {
        int table[N][N] = {0};
        afficherTable(table);
        return 0;
      }
      
      ┌───┬───┬───┬───┬───┬───┬───┬───┐
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      ├───┼───┼───┼───┼───┼───┼───┼───┤
      │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
      └───┴───┴───┴───┴───┴───┴───┴───┘

      -
      Edité par magma 12 novembre 2019 à 16:19:27

      • Partager sur Facebook
      • Partager sur Twitter
        12 novembre 2019 à 17:01:12

        Faudra m'expliquer ce qu'il y a de « ASCII » là dedans car c'est tout sauf ça.
        • Partager sur Facebook
        • Partager sur Twitter

        git is great because Linus did it, mercurial is better because he didn't.

          12 novembre 2019 à 21:30:01

          C'est de l'ASCII étendu, vu les codes que donne magma qui sont au dessus de 128.

          Par contre, il ne faut pas que ce soit considéré comme UTF8, et il faut la bonne codepage, mais par défaut sur un ordi français sous Windows, ça doit marcher :)

          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            13 novembre 2019 à 9:12:21

            Autant utiliser l'unicode avec un fichier encodé en UTF-8 dans ce cas.
            • Partager sur Facebook
            • Partager sur Twitter

            git is great because Linus did it, mercurial is better because he didn't.

              13 novembre 2019 à 11:56:47

              En utilisant le code de magma et la table unicode, je vous propose une solution Unicode (en UTF16) du programme de magma :

              #include <stdio.h>
              #include <io.h>
              #include <fcntl.h>
              
              #define N 8
              
              #define angleHautGauche 0x250F
              #define angleHautDroit  0x2513
              #define angleBasGauche  0x2517
              #define angleBasDroite  0x251B
              
              #define T           0x2533
              #define Tinverse    0x253B
              #define TcoteDroit  0x252B
              #define TcoteGauche 0x2523
              
              #define BarreVerticale   0x2503
              #define BarreHorizontale 0x2501
              #define croix            0x254B
              
              void afficherTable(int table[][N])
              {
              	int i, j, k;
              	_setmode(_fileno(stdout), _O_U16TEXT);
              	wprintf(L"%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              	for (i = 0; i < N - 1; i++) {
              		wprintf(L"%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              	}
              	wprintf(L"%c\n", angleHautDroit);
              
              	for (i = 0; i < N; i++) {
              		for (j = 0; j < N; j++) {
              			wprintf(L"%c %d ", BarreVerticale, table[i][j]);
              		}
              		wprintf(L"%c\n", BarreVerticale);
              
              		if (i < N - 1) {
              			wprintf(L"%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              			for (k = 0; k < N - 1; k++) {
              				wprintf(L"%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              			}
              			wprintf(L"%c\n", TcoteDroit);
              		}
              		else {
              			wprintf(L"%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              			for (k = 0; k < N - 1; k++) {
              				wprintf(L"%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
              			}
              			wprintf(L"%c\n", angleBasDroite);
              		}
              	}
              }
              
              int main(void)
              {
              	int table[N][N] = { 0 };
              	afficherTable(table);
              	return 0;
              }
              



              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                14 novembre 2019 à 9:21:43

                Fvirtman a écrit:

                En utilisant le code de magma et la table unicode, je vous propose une solution Unicode (en UTF16) du programme de magma :

                #include <stdio.h>
                #include <io.h>
                #include <fcntl.h>
                
                #define N 8
                
                #define angleHautGauche 0x250F
                #define angleHautDroit  0x2513
                #define angleBasGauche  0x2517
                #define angleBasDroite  0x251B
                
                #define T           0x2533
                #define Tinverse    0x253B
                #define TcoteDroit  0x252B
                #define TcoteGauche 0x2523
                
                #define BarreVerticale   0x2503
                #define BarreHorizontale 0x2501
                #define croix            0x254B
                
                void afficherTable(int table[][N])
                {
                	int i, j, k;
                	_setmode(_fileno(stdout), _O_U16TEXT);
                	wprintf(L"%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                	for (i = 0; i < N - 1; i++) {
                		wprintf(L"%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                	}
                	wprintf(L"%c\n", angleHautDroit);
                
                	for (i = 0; i < N; i++) {
                		for (j = 0; j < N; j++) {
                			wprintf(L"%c %d ", BarreVerticale, table[i][j]);
                		}
                		wprintf(L"%c\n", BarreVerticale);
                
                		if (i < N - 1) {
                			wprintf(L"%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                			for (k = 0; k < N - 1; k++) {
                				wprintf(L"%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                			}
                			wprintf(L"%c\n", TcoteDroit);
                		}
                		else {
                			wprintf(L"%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                			for (k = 0; k < N - 1; k++) {
                				wprintf(L"%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                			}
                			wprintf(L"%c\n", angleBasDroite);
                		}
                	}
                }
                
                int main(void)
                {
                	int table[N][N] = { 0 };
                	afficherTable(table);
                	return 0;
                }
                



                bonjour, seulement je suis sur eclipse et le professeur veux utilisé les code ascii et pas les unicode utf8 ou utf16

                • Partager sur Facebook
                • Partager sur Twitter
                  14 novembre 2019 à 9:30:23

                  Et bien soit tu utilises le code de magma, soit tu mets juste des - et des | qui sont standards, tant pis si c'est pas graphiquement parfait.

                  J'ai envie de dire que le prof s'en foutra totalement que ce soit joli ou pas, l'essentiel est que ce soit fonctionnel. 

                  Attention, depuis plusieurs jours je vois des messages de toi qui insistent sur le fait de dessiner le damier, je pense que tu utilises beaucoup d'énergie sur ce détail totalement insignifiant. Concentre toi sur le coeur de ton projet.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                    14 novembre 2019 à 10:00:14

                    markand a écrit:

                    Faudra m'expliquer ce qu'il y a de « ASCII » là dedans car c'est tout sauf ça.

                    bonjour markand c'est du ASCII c'est juste que sur ta page il donne pas les Extended ASCII CODE

                    Fvirtman a écrit:

                    Et bien soit tu utilises le code de magma, soit tu mets juste des - et des | qui sont standards, tant pis si c'est pas graphiquement parfait.

                    J'ai envie de dire que le prof s'en foutra totalement que ce soit joli ou pas, l'essentiel est que ce soit fonctionnel. 

                    Attention, depuis plusieurs jours je vois des messages de toi qui insistent sur le fait de dessiner le damier, je pense que tu utilises beaucoup d'énergie sur ce détail totalement insignifiant. Concentre toi sur le coeur de ton projet.

                    Oui merci je pense que je vais utilisé le code de magma merci à tous et pour te répondre mon prof a insisté sur ce détail et en fait j'ai fini mon code a 90% grace a magma, maintenant il me faut juste remplacer les 0 dans chaque case par du vide et affecté les fleche du clavier comme moyens de déplacement du pion sans avoir besoin de demander au joueur de taper j'étais entrain de faire des teste quand j'ai vue vaut messages

                    -
                    Edité par VictorHuguet 14 novembre 2019 à 11:02:12

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 novembre 2019 à 13:26:03

                      Pour remplacer les 0 par du 'vide' tu peux modifier la fonction afficherTable comme ceci :

                      #include <stdio.h>
                      
                      #define N 8
                      
                      #define angleHautGauche 218
                      #define angleHautDroit  191
                      #define angleBasGauche  192
                      #define angleBasDroite  217
                      
                      #define T           194
                      #define Tinverse    193
                      #define TcoteDroit  180
                      #define TcoteGauche 195
                      
                      #define BarreVerticale   179
                      #define BarreHorizontale 196
                      #define croix            197
                      #define blanc            255
                      
                      void afficherTable(int table[][N])
                      {
                        int i, j, k;
                      
                        printf("%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                        for(i = 0; i < N - 1; i++) {
                          printf("%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                        }
                        printf("%c\n", angleHautDroit);
                      
                        for(i = 0; i < N; i++) {
                          for(j = 0; j < N; j++) {
                            if(table[i][j]) {
                              printf("%c%c%d%c", BarreVerticale, blanc, table[i][j], blanc);
                            }
                            else {
                              printf("%c%c%c%c", BarreVerticale, blanc, blanc, blanc);
                            }
                          }
                          printf("%c\n", BarreVerticale);
                      
                          if(i < N - 1) {
                            printf("%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                            for(k = 0; k < N - 1; k++) {
                              printf("%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                            }
                            printf("%c\n", TcoteDroit);
                          }
                          else {
                            printf("%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                            for(k = 0; k < N - 1; k++) {
                              printf("%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                            }
                            printf("%c\n", angleBasDroite);
                          }
                        }
                      }
                      
                      int main(void)
                      {
                        int table[N][N] = {1};
                        afficherTable(table);
                        return 0;
                      }

                      et pour gérer les flèches du clavier tu peux t'inspirer de cet exemple (windows) :

                      #include <stdio.h>
                      #include <conio.h>
                      
                      #define ESCAPE 27
                      
                      #define EXTENDED_KEY_1 0
                      #define EXTENDED_KEY_2 224
                      
                      #define ARROW_UP    72
                      #define ARROW_DOWN  80
                      #define ARROW_LEFT  75
                      #define ARROW_RIGHT 77
                      
                      int main(void)
                      {
                        int c;
                      
                        while((c = _getch()) != ESCAPE)
                        {
                          if(c == EXTENDED_KEY_1 || c == EXTENDED_KEY_2)
                          {
                            switch(_getch())
                            {
                              case ARROW_UP:
                                puts("UP");
                                break;
                      
                              case ARROW_DOWN:
                                puts("DOWN");
                                break;
                      
                              case ARROW_LEFT:
                                puts("LEFT");
                                break;
                      
                              case ARROW_RIGHT:
                                puts("RIGHT");
                                break;
                            }
                          }
                        }
                      
                        return 0;
                      }




                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 novembre 2019 à 15:20:50

                        magma a écrit:

                        Pour remplacer les 0 par du 'vide' tu peux modifier la fonction afficherTable comme ceci :

                        #include <stdio.h>
                        
                        #define N 8
                        
                        #define angleHautGauche 218
                        #define angleHautDroit  191
                        #define angleBasGauche  192
                        #define angleBasDroite  217
                        
                        #define T           194
                        #define Tinverse    193
                        #define TcoteDroit  180
                        #define TcoteGauche 195
                        
                        #define BarreVerticale   179
                        #define BarreHorizontale 196
                        #define croix            197
                        #define blanc            255
                        
                        void afficherTable(int table[][N])
                        {
                          int i, j, k;
                        
                          printf("%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                          for(i = 0; i < N - 1; i++) {
                            printf("%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                          }
                          printf("%c\n", angleHautDroit);
                        
                          for(i = 0; i < N; i++) {
                            for(j = 0; j < N; j++) {
                              if(table[i][j]) {
                                printf("%c%c%d%c", BarreVerticale, blanc, table[i][j], blanc);
                              }
                              else {
                                printf("%c%c%c%c", BarreVerticale, blanc, blanc, blanc);
                              }
                            }
                            printf("%c\n", BarreVerticale);
                        
                            if(i < N - 1) {
                              printf("%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                              for(k = 0; k < N - 1; k++) {
                                printf("%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                              }
                              printf("%c\n", TcoteDroit);
                            }
                            else {
                              printf("%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                              for(k = 0; k < N - 1; k++) {
                                printf("%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
                              }
                              printf("%c\n", angleBasDroite);
                            }
                          }
                        }
                        
                        int main(void)
                        {
                          int table[N][N] = {1};
                          afficherTable(table);
                          return 0;
                        }

                        et pour gérer les flèches du clavier tu peux t'inspirer de cet exemple (windows) :

                        #include <stdio.h>
                        #include <conio.h>
                        
                        #define ESCAPE 27
                        
                        #define EXTENDED_KEY_1 0
                        #define EXTENDED_KEY_2 224
                        
                        #define ARROW_UP    72
                        #define ARROW_DOWN  80
                        #define ARROW_LEFT  75
                        #define ARROW_RIGHT 77
                        
                        int main(void)
                        {
                          int c;
                        
                          while((c = _getch()) != ESCAPE)
                          {
                            if(c == EXTENDED_KEY_1 || c == EXTENDED_KEY_2)
                            {
                              switch(_getch())
                              {
                                case ARROW_UP:
                                  puts("UP");
                                  break;
                        
                                case ARROW_DOWN:
                                  puts("DOWN");
                                  break;
                        
                                case ARROW_LEFT:
                                  puts("LEFT");
                                  break;
                        
                                case ARROW_RIGHT:
                                  puts("RIGHT");
                                  break;
                              }
                            }
                          }
                        
                          return 0;
                        }



                        wow merci c'est hyper gentils, j'avais reussis a faire le changement pour l'affichage du zero mais j'arrivais pas pour les fleche tu m'aide beaucoup.

                        parcontre c'est quoi les extended Key 0 et 224 j'en est jamais entendu parler ? 

                        vraiment merci magma



                        -
                        Edité par VictorHuguet 14 novembre 2019 à 15:35:05

                        • Partager sur Facebook
                        • Partager sur Twitter

                        probleme utilisation du code ascii

                        × 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