Soyez le premier à donner votre avis sur cette source.
Vue 3 808 fois - Téléchargée 187 fois
// PROGRAMME EN C SOUS DOS TURBO C++2 BORLAND // ecrit le 02-04-2002 par cmarsc // MOVE TEXTE4 #include <stdio.h> #include <conio.h> // <conio.c> devc++4 #include <stdlib.h> #include <string.h> /* mettre 20 pour devc++4 */ #define VITESSE_D_AFFICHAGE 300 // remplace delay si non disponible dans votre bibliotheque void ralentir(void); void effacer_ecran(void); void effet1_droite_gauche(int col_depart, int col_fin,int ligne); void effet1_gauche_droite(int col_depart, int col_fin,int ligne); void effet2_droite_gauche(int col_depart, int col_fin,int ligne); void effet2_gauche_droite(int col_depart, int col_fin,int ligne); char *menu[] = { "FILE", "EDIT", "SEARCH", "RUN", "COMPILE", "DEBUG", "PROJECT", "OPTIONS", "WINDOW", "HELP" }; int main(void) { char votre_choix; //textbackground(CYAN); // fond vert clrscr(); // effacer ecran _setcursortype(_NOCURSOR); // supprimer le curseur clignotant gotoxy(15,25); textcolor(YELLOW); cprintf("TAPER UN CHIFFRE ENTRE 1 et 4 ESC pour sortir "); textcolor(12); while(1) { // TAPER ESC POUR SORTIR votre_choix = getch(); ralentir(); // temps d'attente effacer_ecran(); switch (votre_choix) { case '1' : // col_depart = 79 col_fin = 5 ligne = 3 effet1_droite_gauche(79,5,3); break; case '2' : // col_depart = 2 col_fin = 70 ligne = 3 effet1_gauche_droite(2,70,3); break; case '3' : // col_depart = 80 col_fin = 2 ligne = 3 effet2_droite_gauche(80,2,3); break; case '4' : // col_depart = 2 col_fin = 74 ligne = 3 effet2_gauche_droite(2,74,13); break; case 27: exit(0); // sortir du programme break; default: break; } } // fin de while(1) // return 0; } // fin de main void ralentir(void) { int i0; for (i0 = 0; i0 < VITESSE_D_AFFICHAGE ; i0++){ gotoxy(1,1); cprintf("%1c",'\0'); } return; } void effacer_ecran(void) { int i1; for (i1 = 0; i1 < 23; i1++){ gotoxy(1,1+i1); cprintf("%79c",'\0'); } return; } void effet1_droite_gauche(int col_depart, int col_fin,int ligne) { int i1, i2,long_ligne; // nbre d'element dans le menu int max_menu = sizeof(menu) / sizeof(menu[0]); for (i1 = 0; i1 < max_menu; ++i1) { // longueur de la ligne long_ligne = strlen(menu[i1]); for (i2 = 0; ( col_depart - long_ligne ) - i2 > col_fin ; ++i2) { gotoxy( ( col_depart - long_ligne) - i2 ,ligne+i1); cprintf("%s ",menu[i1]); ralentir(); // ralentir l'effet } } return ; } // fin de la fonction : effet1_droite_gauche void effet1_gauche_droite(int col_depart, int col_fin,int ligne) { int i1, i2,long_ligne; // nbre d'element dans le menu int max_menu = sizeof(menu) / sizeof(menu[0]); for (i1 = 0; i1 < max_menu; ++i1) { // longueur de la ligne la plus grande ici Nø 4 ou 7 long_ligne = strlen(menu[4]); for (i2 = 0; col_depart + long_ligne+ i2 < col_fin ; ++i2) { gotoxy( col_depart + i2 ,ligne+i1); cprintf(" %s",menu[i1]); ralentir(); // ralentir l'effet } } return ; } // fin de la fonction : effet1_gauche_droite void effet2_droite_gauche(int col_depart, int col_fin,int ligne) { int i1, i2,long_ligne, long_ligne_pre; // nbre d'element dans le menu int max_menu = sizeof(menu) / sizeof(menu[0]); long_ligne = 0; long_ligne_pre =0; for (i1 = 0; i1 < max_menu; ++i1) { // longueur de la ligne long_ligne = strlen(menu[i1]); for (i2 = 0; ( col_depart - long_ligne ) - i2 > col_fin +long_ligne_pre ; ++i2) { gotoxy( ( col_depart - long_ligne ) - i2 ,ligne); cprintf("%s ",menu[i1]); ralentir(); // ralentir l'effet } // cummuler la longueur des lignes precedentes long_ligne_pre += long_ligne + 2; } return ; } // fin de la fonction : effet2_droite_gauche void effet2_gauche_droite(int col_depart, int col_fin,int ligne) { int i1, i2,long_ligne, long_ligne_pre; // nbre d'element dans le menu int max_menu = sizeof(menu) / sizeof(menu[0]); long_ligne = 0; long_ligne_pre = 0; for (i1 = 0; i1 < max_menu; ++i1) { // longueur de la ligne long_ligne = strlen((menu[(max_menu-1)-i1])); for (i2 = 0; col_depart + i2 < (col_fin - long_ligne) - long_ligne_pre; ++i2) { gotoxy(col_depart + i2 ,ligne); cprintf(" %s",menu[(max_menu-1)-i1]); ralentir(); // ralentir l'effet } // cummuler la longueur des lignes precedentes long_ligne_pre += long_ligne + 2 ; } return ; } // fin de la fonction : effet2_gauche_droite
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.