Partage
  • Partager sur Facebook
  • Partager sur Twitter

plus ou moins

    24 janvier 2021 à 15:01:40

    salut à tt le monde !

    dans ce petit jeu j'arrive à trouver un petit probleme , lorsque j'active mode de é joueurs l'un donner un nombre et l'autre va le deviner , mais le probleme c que quand le 1er jeoueur donne le nombre se reste afficher dans .exe comment je dois faire ??  

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2021 à 15:46:49

      Hello,

      La solution la plus simple et qui fonctionne sous windows, linux et osx, c'est de faire une boucle qui affiche suffisamment de printf("\n") (ou puts("") ou  putchar('\n')) pour que le nombre disparaisse de l'écran.

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        24 janvier 2021 à 21:49:47

        Le plus simple c'est de clear la console: 
        #include <stdlib.h>
        system("cls");


        • Partager sur Facebook
        • Partager sur Twitter
        "Skill will accomplish what is denied to force" (Mertvago,1995)
          24 janvier 2021 à 23:07:01

          venom0218 a écrit:

          Le plus simple c'est de clear la console: 

          #include <stdlib.h>
          system("cls");



          Ne fonctionne pas sous linux. Je sais que le PO a écrit "dans .exe"

          -
          Edité par edgarjacobs 24 janvier 2021 à 23:10:40

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            25 janvier 2021 à 0:56:59

            edgarjacobs a écrit:

            venom0218 a écrit:

            Le plus simple c'est de clear la console: 

            #include <stdlib.h>
            system("cls");



            Ne fonctionne pas sous linux. Je sais que le PO a écrit "dans .exe"

            -
            Edité par edgarjacobs il y a environ 1 heure


            Juste remplacer par 
            system("clear");
            Pour les sytèmes Unix
            • Partager sur Facebook
            • Partager sur Twitter
            "Skill will accomplish what is denied to force" (Mertvago,1995)
              25 janvier 2021 à 1:53:50

              Je reviens à la première suggestion de edgarjacobs qui suggère d'envoyer suffisamment de lignes vides pour effacer l'écran.
              Ça marche sur tous les systèmes.
              OK, Ce n'est peut-être pas élégant, mais ça marche.
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                25 janvier 2021 à 8:10:52

                Les rafales de \n c'est sympa, ça donne un look rétro, genre teletype ou WarGames(1983) 😁

                Sinon, ce qu'on peut toujours essayer, parce que ça ne coûte rien et que c'est plus ou moins portable là où il y a de l'ANSII, c'est un simple :

                printf("\e[H\e[2J");



                • Partager sur Facebook
                • Partager sur Twitter
                  25 janvier 2021 à 9:13:21

                  venom0218 a écrit:

                  Le plus simple c'est de clear la console: 

                  #include <stdlib.h>
                  system("cls");



                  Personne ne fait ça dans des « vrais » programmes, alors pourquoi le proposer ?

                  Si l'OP souhaite vraiment faire une interface graphique il faut utiliser ncurses, pas essayer de faire du nettoyage d'écran qui ne fait que paginer (= redimensionnement / page up et on revoie le précédent contenu quand même).

                  • Partager sur Facebook
                  • Partager sur Twitter

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

                    25 janvier 2021 à 9:47:47

                    White Crow a écrit:

                    Sinon, ce qu'on peut toujours essayer, parce que ça ne coûte rien et que c'est plus ou moins portable là où il y a de l'ANSII, c'est un simple :

                    printf("\e[H\e[2J");



                    ___

                     Les séquences ANSI sont reconnues sous Windows 10 mais il faut le faire savoir au terminal ...

                    #include <windows.h>
                    #include <stdio.h>
                    
                    #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
                    # define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
                    #endif
                    
                    int main(void)
                    {
                      DWORD dwMode;
                      HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
                    
                      GetConsoleMode(hStdout, &dwMode);
                      SetConsoleMode(hStdout, dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING);
                    
                      printf("\e[2J\e[H");
                      puts("\e[40;34m BLEU \e[37m BLANC \e[31m ROUGE ");
                      puts("\e[44;30m BLEU \e[47m BLANC \e[41m ROUGE ");
                      puts("\e[40;94m BLEU \e[97m BLANC \e[91m ROUGE ");
                      puts("\e[104;30m BLEU \e[107m BLANC \e[101m ROUGE ");
                      printf("\e[m");
                    }





                    -
                    Edité par magma 25 janvier 2021 à 9:54:47

                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 janvier 2021 à 10:31:02

                      magma a écrit:

                      White Crow a écrit:

                      Sinon, ce qu'on peut toujours essayer, parce que ça ne coûte rien et que c'est plus ou moins portable là où il y a de l'ANSII, c'est un simple :

                      printf("\e[H\e[2J");



                      ___

                       Les séquences ANSI sont reconnues sous Windows 10 mais il faut le faire savoir au terminal ...


                      ah cool ça … et par curiosité, est-ce qu'un "\e[3J" vide le buffer écran ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 janvier 2021 à 22:13:53

                        markand a écrit:

                        venom0218 a écrit:

                        Le plus simple c'est de clear la console: 

                        #include <stdlib.h>
                        system("cls");



                        Personne ne fait ça dans des « vrais » programmes, alors pourquoi le proposer ?

                        Si l'OP souhaite vraiment faire une interface graphique il faut utiliser ncurses, pas essayer de faire du nettoyage d'écran qui ne fait que paginer (= redimensionnement / page up et on revoie le précédent contenu quand même).

                        Ya pas de "vrai" programmes. la solution la plus simple et élégante c'est un clean de console. pas une loop de \n que tu peux remonter dans la console en scrollant, ou une lib compliquée à utiliser pour un débutant.

                        -
                        Edité par venom0218 25 janvier 2021 à 22:16:22

                        • Partager sur Facebook
                        • Partager sur Twitter
                        "Skill will accomplish what is denied to force" (Mertvago,1995)
                          25 janvier 2021 à 22:56:46

                          venom0218 a écrit:

                          markand a écrit:

                          venom0218 a écrit:

                          Le plus simple c'est de clear la console: 

                          #include <stdlib.h>
                          system("cls");



                          .... pour un débutant.

                          Justement, c'est un débutant. Et system(), il ne connait pas. Par contre, il connait printf() depuis "Hello world"



                          -
                          Edité par edgarjacobs 25 janvier 2021 à 22:57:53

                          • Partager sur Facebook
                          • Partager sur Twitter

                          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                            26 janvier 2021 à 1:07:12

                            tC'est si affreux de faire une boucle du genre?
                            for(int i=0; i < nombre_de_lignes_dans_l_ecran; i++)  printf("\n");
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Le Tout est souvent plus grand que la somme de ses parties.

                              26 janvier 2021 à 9:00:39

                              Bah c'est surtout inutile puisque ça fait que paginer l'écran et vu que la plupart des terminaux sont redimensionnables il y a aucun intérêt. L'OP perd du temps avec des choses accessoires.

                              -
                              Edité par markand 26 janvier 2021 à 9:01:04

                              • Partager sur Facebook
                              • Partager sur Twitter

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

                                26 janvier 2021 à 9:14:41

                                markand a écrit:

                                Bah c'est surtout inutile puisque ça fait que paginer l'écran et vu que la plupart des terminaux sont redimensionnables il y a aucun intérêt. L'OP perd du temps avec des choses accessoires.

                                -
                                Edité par markand il y a 10 minutes

                                Sauf si le code ANSI "\e[3J" fonctionne … pour les terminaux qui l'acceptent ça vide le buffer écran.

                                Mais c'est vrai que c'est une perte de temps si l'OP n'est pas dans une phase fin de projet/améliorations cosmétiques.

                                • 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