Partage
  • Partager sur Facebook
  • Partager sur Twitter

Simuler des etats logique en appuyant, touche

    21 novembre 2017 à 16:19:39

    Bonjour tous le monde, voila je rencontre actuellement un problème lorsque je rentre dans mon menu et que je souhaite appuyer sur la  touche voulu il lance l'affichage mais reviens directement au menu pourquoi ? merci

    int main(int argc, char** argv)
    {   
        int C,E=0,Cptboucle=0,Memo_E=0,S;
        int Tempo,Etape;
        do{
            
            Sleep(10);// temps de pause
            Cptboucle++;// incrémenntation du compteur 
            
            // Affichage du menu
            windows_clear_screen_color(BLANC,NOIR);  // Effacement de l'écran avant affichage du menu
            printf("              |--------------|--------------|\n");
            printf("                 BIENVENUE SUR NOTRE PROJET  \n\n");  
            printf("              |   Koenig     |     Gros     |\n");
            printf("              |--------------|--------------|\n");
            printf("               Gestion d'une table elevatrice \n");
            printf("              |--------------|--------------|\n");
            printf("\n\n\n\n");
            printf("  1    -Table elevatrice\n\n");
            printf("  Q    -Quitter\n ");
            printf("\n");
            //Pause();
            C =getch();   // attente frappe d'une touche
         
            
            
             switch(C)
        {   
                 //lorsque l'on clique sur la touche '1' nous rentrons dans l'automate de la table elevatrice
            case '1':
                     windows_clear_screen_color(BLANC,NOIR);
                     
                     printf("              |--------------|--------------|\n");
                  
                     printf("              |       TABLE ELEVATRICE      |\n ");
                      printf("             |--------------|--------------|\n");
                     
                     printf("\n\n\n\n");
                     color(2,0);//affichage des texte en couleur, et  en dessous les menus qui vont intéragire en fonction du bouton apppuyer 
                     printf("  2  - bouton monter   =\n\n");
                     color(3,0);
                     printf("  3  - bouton descante =\n\n");
                     color(12,0);
                     printf("  4  - bouton arret    =\n\n");
                     C =getch();   
                     break;
                     
                     
                      if(kbhit()){
                           C=getch();
               
                          case 'e':if(E==0)E=1;
                                   else E=0;
                   break;
                
             }
                     
             }
                    
             if(Etape==0){
                //Détection d'un front montant
                if(Memo_E<E){
                    Etape=1;
                    S=1;
                    Tempo=Cptboucle+300;
                }
            }
            else if (Etape==1){
                if(Tempo<Cptboucle){
                    Etape=0;
                    S=0;
                }
            }
             
              //Posiotionne le texte sur la fenetre DOS
            gotoXY(10,10);
            printf("E = %d  S = %d  Etape = %d ",E,S,Etape);
            //Affiche le texte après les modifications
            fflush(stdout);
            
            gotoXY(10,15);
            printf("Entree : ");
            if(E==0){
                //Change la couleur du texte
                color(BLANC,ROUGE);
                printf("[%d]",E);
            }else{
                color(BLANC,VERT);
                printf("[%d]",E);
            }
            //Affiche le texte avec les modifications
            fflush(stdout);
            //Retour dans les 1ere conditions de fond et de forme
            color(ROUGE,BLANC);
            
         Memo_E=E;   
         
        }while(C!='Q' && C!='q');
    
        return (EXIT_SUCCESS);
    }
    



    • Partager sur Facebook
    • Partager sur Twitter
      21 novembre 2017 à 17:21:27

      Salut,

      Peux-tu être plus précis ? Qu'est-ce qui est affiché exactement ? (un exemple peut-être)

      Sinon, un switch avec un seul caractère, c'est pas excellent, tu as meilleur temps de faire un si

      • Partager sur Facebook
      • Partager sur Twitter

      J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !

        21 novembre 2017 à 18:01:54

        Pourquoi ? et bien parce que c'est ce que ton programme demande.

        La seul boucle qui revient en arrière c'est ton while ligne 98 et il revient au début de ton programme.

        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2017 à 19:51:04

          Bonjour rouloude,

          Alors la solution serais de recrée une boucle while ? car oui il faut que mon programme tourne en boucle a chaque fois que j'appuie  sur une touche comme par exemple: 'M' , mon état sera à 1 et mon compteur va s'incrémenter.

                                                        'D' mon état sera à -1 et mon compteur va décrémenter

                                                         'A' mon état sera à 0 et mon compteur va s’arrêter

          quel serais alors la meilleur solution? merci beaucoup.

          • Partager sur Facebook
          • Partager sur Twitter
            21 novembre 2017 à 21:18:27

            Tu n'as pas le choix, tu dois effectivement créer une seconde boucle.
            • Partager sur Facebook
            • Partager sur Twitter

            Simuler des etats logique en appuyant, touche

            × 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