Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 378 fois - Téléchargée 39 fois
// PROGRAMME EN C SOUS DOS TURBO C++ BORLAND // ecrit le 16-03-2002 par cmarsc // GRAPHIQUE EXPRESS NOMBRE ALEATOIRE #include <stdio.h> #include <stdlib.h> // pour rand #include <conio.h> // pour gettext #include <dos.h> // pour delay #define VALEUR_MAXI 49 // sortir les numeros entre 3 et 49 #define NBRE_DE_BARRE_MAXI 12 // graphique avec 12 barres void afficher_le_texte (void); void graphique(int numero_tire,char type_effet); void effacer_ecran(void); static char *texte = " Graphique des numeros tires aleatoirement "; int main(void) { char votre_choix; int numero_tire; votre_choix = '\0'; textbackground(BLUE); // fond BLEU clrscr(); // effacer l'ecran _setcursortype(_NOCURSOR); // supprimer le curseur clignotant do { // choisir la valeur par defaut si choix non valide 1 2 ou 3 // valeur par defaut if (votre_choix < '1' || votre_choix > '3' ) votre_choix = '1'; do { numero_tire = rand() % (VALEUR_MAXI) +1; // type d'effet 1 2 ou 3 graphique(numero_tire,votre_choix); } while (!kbhit()); // detecter une touche frappee // au clavier votre_choix = getch(); } while (votre_choix != 27); // ESC sortir du programme return 0; } // fin de main void afficher_le_texte (void) { int i1, i2; textcolor(WHITE); // texte blanc textbackground(rand() % (15)); // choisir aleatoirement // la couleur de fond for (i1 = 0; i1 < 37; i1++) { gotoxy(1+i1,2); // deplacer texte a la colonne 37 cprintf("%s",texte); // de gauche vers la droite delay(5); // ralentir l'effet } for (i2 = 0; i2 < 20; i2++) { gotoxy(1+i1-i2,2); // deplacer texte colonne 37-20 cprintf("%s",texte); // de droite vers la gauche delay(5); // ralentir l'effet } textbackground(BLUE); // fond bleu gotoxy(20,1); cprintf("Taper 1 2 ou 3 ESC pour sortir "); } // fin afficher_le_texte void graphique(int numero_tire,char type_effet) { int i1 , hauteur_barre, couleur_barre; static int nbre_de_barre; static int col = 0; // eviter un numero inferieur a 3 car valeur trop petite if (numero_tire < 3) return ; // calculer la hauteur de la barre hauteur_barre = (numero_tire * 21) / VALEUR_MAXI; // remettre le compteur a zero lorsque les 12 barres sont affichees nbre_de_barre = (nbre_de_barre >= NBRE_DE_BARRE_MAXI) ? 0 : nbre_de_barre; if (nbre_de_barre < 0 || nbre_de_barre > NBRE_DE_BARRE_MAXI) exit(0); if (type_effet == '1') { if (!nbre_de_barre) { delay(1000); // attendre avant d'effacer effacer_ecran(); // effacer l'ecran a chaque fois afficher_le_texte(); } } ++nbre_de_barre; col = nbre_de_barre * 6; // 6 = ecart entre 2 barres if (type_effet == '2') { // effacer la barre de haut en bas for (i1 = 0; i1 < 22 ; ++i1) { gotoxy(col,3 + i1 ); cprintf( "%5c",'\0'); delay(5 ); // ralentir l'effet } } for (i1 = 0; i1 < hauteur_barre ; ++i1) { // definir les couleurs des barres switch (nbre_de_barre) { case 1: couleur_barre = 2; break; case 2: couleur_barre = 15; break; case 7: couleur_barre = 14; break; case 8: couleur_barre = 13; break; default: couleur_barre = nbre_de_barre; break; } textcolor(couleur_barre); gotoxy(col,23-i1); cprintf("%3d%3c",numero_tire,'\0'); gotoxy(col,24 - i1 ); cprintf( "ÛÛÛÛ"); if (i1 < hauteur_barre ) { // dessiner l'ombre textcolor(BLACK); // couleur noir gotoxy(col+4,24 - i1 ); cprintf( "Û"); } delay(10); // ralentir l'effet } if (type_effet == '3') { // effacer le haut de la barre for (i1 = 0; i1 < 21 - hauteur_barre ; ++i1) { gotoxy(col,3 + i1 ); cprintf( "%5c",'\0'); delay(15); // ralentir l'effet } } return ; } // fin graphique void effacer_ecran(void) { int i1; // deplacer tout l'ecran vers le haut for (i1 = 0; i1 < 50 ; ++i1) { gotoxy(1,25); cprintf("\n"); delay(5); // ralentir l'effet } return ; } // fin effacer_ecran
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.