1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
#include <stdio.h>
#include<stdio.h>
#include<stdlib.h>
#include <stdlib.h>
#include <windows.h>
#include <conio2.h>
#include <conio.h>
// pour rand
// 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() {
char votre_choix;
int numero_tire;
votre_choix = '\0';
system("cls" );
_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
system("pause"); // 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
system("pause"); // 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) {
system("pause"); // 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');
system("pause"); // 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( "Û");
}
system("pause"); // 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');
system("pause"); // 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");
system("pause");
// ralentir l'effet
}
return ;
} // fin effacer_ecran |
Partager