Graphique express nombres aleatoires turbo c++2 borland

Contenu du snippet

GENERER DES NOMBRES PSEUDO ALEATOIREMENT PUIS FAIRE UN GRAPHIQUE AVEC

Source / Exemple :


//  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

Conclusion :


// PROGRAMME EN C SOUS DOS TURBO C++ BORLAND
// ecrit le 16-03-2002 par cmarsc

A voir également

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.