et oui encore un programme matrix!!
ici j'ai voulu representer l'ecran des ordis ou le code defile verticalement...
Source / Exemple :
#include <iostream.h>
#include <stdlib.h>
#include <conio.c>
#include <time.h>
void lettre(int a,int b)
{
//cettefonction affiche un blanc en dessou du tampon
//et un caractere aleatoire a la place du tampon
//affiche un blanc s'il ne sort pas de l'ecran
if(b<=23)
{
gotoxy(a,b+1);
textcolor(255);//couleur blanche
cout<<" ";
}
textcolor(3);
gotoxy(a,b);
cout<<(char)(rand()%245+10);
}
int main()
{
textcolor(3);
srand(time(0));
int nsupr,necri,i;
cout<<"entrez la quantitée de tampon d'affichage et d'effacement :";
cin>>necri>>nsupr;
system("cls");
int supr[nsupr][2],ecri[necri][2],matr[81]={0};
//initialise les coordonées des tampon et les affiche a l'ecran
for(int x=0;x<necri;x++)
{
ecri[x][0]=rand()%79+1;
ecri[x][1]=rand()%24+1;
for(int y=1;y<=ecri[x][1];y++)
{
lettre(ecri[x][0],y);
}
}
//initialisation des coordonées des tampon d'effacement
for(int x=0;x<=nsupr;x++)
{
supr[x][0]=rand()%79+1;
supr[x][1]=rand()%23+1;
}
//jusque la le programme initialisai l'ecran
while(1)//boucle infinie (sisi j'vous jure!)
{
for(int x=0;x<necri;x++)
{
//appelle de fonction
lettre(ecri[x][0],ecri[x][1]);
//le tampon ce deplace vers le bas
ecri[x][1]++;
//si le tampon est en bas,il se replace en hau
if(ecri[x][1]==25)
{
ecri[x][0]=rand()%79+1;
ecri[x][1]=1;
}
}
//idem por le tampon qui efface les caracteres
for(int x=0;x<nsupr;x++)
{
supr[x][1]++;
gotoxy(supr[x][0],supr[x][1]);
cout<<" ";
if(ecri[x][1]==24)
{
supr[x][0]=rand()%79+1;
supr[x][1]=0;
}
}
//pour eviter que le curseau se balade sur l'ecran
gotoxy(1,1);
Sleep(20);
}
}
Conclusion :
il y a un bug: il y a des blanc qui restent imobiles sur l'ecran. je sais pas du tout d'ou ca vient.si quelqun trouve sa m'arangerais.
prochainement je pensse l'ameliorer en creant une liste de 80 quicontiendrai l'eta de chaque colone. ainssi un tampon n'irai pas sur une colone deja ecrite...
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.