Move the text 3 effets de textes turbo c++2 devc++4

Description

AFFICHER UN MENU AUTREMENT AVEC DES EFFETS DE CARACTERES

Source / Exemple :


/*  PROGRAMME EN C SOUS DOS TURBO C++2 DEVC++4
    ecrit le 20-03-2002  par cmarsc
    move text 3 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>           /* devc++ 4 <conio.c> */

/* mettre 250 pour devc++4 */
#define VITESSE_D_AFFICHAGE 1000

#define KEY_ESC 27           /* touche ESC */

/* peut etre remplacee par sleep ou delay */
void ralentir(void);
void effet1_menu(int col, int ligne_depart);
void effet2_menu(int col, int ligne_depart);
void effet3_menu(int col, int ligne_depart);
void effet4_menu(int col, int ligne_depart);
void effet5_menu(int col, int ligne_depart);
void effet6_menu(int col, int ligne_depart, int ligne_fin);

char *menu[] = {
	"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿",
	"³ 1 Descendre le texte...................³",
	"³ 2 Monter le texte......................³",
	"³ 3 Aller de gauche a droite.............³",
	"³ 4 Aller de droite a gauche.............³",
	"³ 5 Diagonale haut gauche vers bas droit.³",
	"³ 6 Diagonale haut droit vers bas gauche.³",
	"³ 7 Diagonale bas gauche vers haut droit.³",
	"³ 8 Diagonale bas droit vers haut gauche.³",
	"³ 9 Afficher le menu principal...........³",
	"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´",
	"³ ESC.........FIN DU PROGRAMME...........³",
	"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ",
};

int main(void) {

	char votre_choix = '\0';
	clrscr();
	srand( (unsigned) time(NULL) );
	/* supprimer le curseur clignotant conio.h */
	_setcursortype(_NOCURSOR);

	/* TAPER ESC POUR SORTIR */
	while (votre_choix != KEY_ESC) {

		do {
	clrscr();
	textcolor(LIGHTGREEN);	/* text vert_claire */
	gotoxy(18, 1);
	cprintf("Si c'est trop lent reduire VITESSE_D_AFFICHAGE");
	gotoxy(18, 3);
	cprintf("TAPER UN CHIFFRE ENTRE 1 et 6   ESC pour sortir ");

		/* changer aleatoirement la couleur */
		textcolor(rand() % (15) +1 );

		/* attendre avant d'effacer l'ecran on peut mettre sleep ou delay */

		ralentir();
		ralentir();

		switch (votre_choix) {

		case '1' :

			/* colonne = 20   ligne_depart = 5 */
			effet1_menu(20, 5);

		break;

		case '2' :

			/* colonne = 20   ligne_depart = 5 */
			effet2_menu(20, 5);

		break;
		case '3' :

			/* colonne = 20   ligne_depart = 5 */
			effet3_menu(20, 5);

		break;

		case '4' :
			/* colonne = 20   ligne_depart = 5 */
			effet4_menu(20, 5);
		break;

		case '5' :
			/* colonne = 20   ligne_depart = 5 */
			effet5_menu(20, 4);
		break;

		case '6' :
			/* colonne = 20   ligne_depart =23   ligne_fin = 5 */
			effet6_menu(20,23,4);
		break;

		case KEY_ESC:	exit(0); 	/* sortir du programme */
		break;
		default:
			/* choix par defaut */
			votre_choix = '6';

		break;
		} /* fin de switch */

		} while (!kbhit());

		votre_choix = getch();

	} /* fin de while (votre_choix != KEY_ESC) */

return 0;

} /* fin de main */

void ralentir(void) {
	int i0;
	for (i0 = 0; i0 < VITESSE_D_AFFICHAGE; ++i0) {
        gotoxy(1,1);
		cprintf("%1c",'\0');
	}
} /* fin de ralentir */

void effet1_menu(int col, int ligne_depart) {

	int i1, i2;

	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

	for (i1 = 0; i1 < max_menu ; ++i1) {

		for (i2 = 0; i2 <= strlen(menu[i1]) ; ++i2) {

			gotoxy(col,ligne_depart + i1 );
			cprintf( "%1s", strlen(menu[i1])+ menu[i1] -i2);

			ralentir();
		}
	}
return ;
}

void effet2_menu(int col, int ligne_depart) {
	int i1, i2;

	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

	for (i1 = 0; i1 < max_menu ; ++i1) {

		for (i2 = 0; i2 < strlen(menu[i1]) ; ++i2) {

			gotoxy(col + i2,ligne_depart + i1 );
			cprintf( "%.1s", menu[i1] +i2);
			ralentir();
		}
	}
return ;

}

void effet3_menu(int col, int ligne_depart) {
	int i1, i2;

	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

		for (i2 = 0; i2 < strlen(menu[0]) ; ++i2) {
			for (i1 = 0; i1 < max_menu ; ++i1) {

			gotoxy(col + i2,ligne_depart + i1 );
			cprintf( "%.1s", menu[i1] +i2);

		}
			ralentir();
	}
return ;

}

void effet4_menu(int col, int ligne_depart) {
	int i1, i2;

	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

		for (i2 = 0; i2 <= strlen(menu[0]) ; ++i2) {
			for (i1 = 0; i1 < max_menu ; ++i1) {

			gotoxy(col,ligne_depart + i1 );
			cprintf( "%1s", strlen(menu[i1])+ menu[i1] -i2);

		}
		  ralentir();	   ralentir();
	}
	   ralentir();

return ;

}

void effet5_menu(int col, int ligne_depart) {
	int i1, i2;

	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

	for (i1 = 0; i1 < max_menu ; ++i1) {

		for (i2 = 0; i2 < (max_menu-i1)  ; ++i2) {

			gotoxy(col, ligne_depart+ (max_menu- i1) );
			cprintf( "%s", menu[i2] );

			ralentir();
		}
	}
	  ralentir();

return ;
}

void effet6_menu(int col, int ligne_depart, int ligne_fin) {

	int i1, i2;
	/* nbre d'elements dans le menu */
	int max_menu = sizeof(menu) / sizeof(menu[0]);

	for (i1 = 0; i1 < max_menu ; ++i1) {

		for (i2 = 0; (ligne_fin+i2) < (ligne_depart) -i1 ; ++i2) {

			gotoxy(col,ligne_depart - i2);
			cprintf("%s",menu[ i1]);

			ralentir();

			gotoxy(col  ,ligne_depart+1 - i2);
			cprintf("%45c",'\0');     /* ligne vide */

		}
	}

return ;
}

Conclusion :


// PROGRAMME EN C SOUS DOS TURBO C++2 DEVC++4
// ecrit le 20-03-2002 par cmarsc

Codes Sources

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.