[dev-c++]effet matrix

Description

Je sais qu'il y a déjà pas mal de source la dessus, mais j'ai remarqué que la plupart était assez éloignée de l'effet du film. Je pense que ce code est proche de l'effet du film sans, malheureusement, les caractères japonais.
Le fichier ZIP comprend, en plus du fichier source, un executable.

Source / Exemple :


#include <iostream>
#include <stdlib.h>
#include <conio.c>

int main(int argc, char *argv[])
{
    textcolor(10);
    unsigned int y[79];
    unsigned int ymin[79];
    unsigned int a,b;
    char i[36] ={48,49,50,51,52,53,54,55,56,57,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};
   for ( a = 0; a < 79; a++) 
    {
        y[a] = 0;
        ymin[a] = 1;
    }
    do
    {
        for(unsigned int x = 0; x < 79; x++)
        {
            for(unsigned int j = 0; j < 5; j++)
            {   
                a = rand()%79;
                if ( y[a] != 0 )
                {   
                    b = rand()%y[a]+ymin[a];
                    if ( b < 26 )
                    {
                        if ( b < ymin[a] + 2 & b > 2) textcolor(2);                               
                        gotoxy(a + 1,b);
                        cout << i[rand()%36];
                        textcolor(10);
                    }
                }
            }
            if (y[x] != 0 || (rand()%50) == 0)
            {
                if ( (rand()%(y[x]+1)) < 20 & ymin[x] == 1 ) 
                {
                     y[x]++;
                }
                else  
                {
                    gotoxy(x + 1,ymin[x]);
                    cout << " ";
                    ymin[x]++;
                    if (ymin[x] < 25)
                    {
                        textcolor(2);
                        gotoxy(x + 1,ymin[x] + 1);
                        cout << i[rand()%36];
                        textcolor(10);
                    }
                }
                if ((y[x] + ymin[x]) < 26)
                {
                    gotoxy(x + 1,y[x] + ymin[x]);
                    textcolor(15);
                    cout << i[rand()%36];
                    textcolor(10);
                }
                if  ((y[x] + ymin[x]) < 27)
                {   
                    gotoxy(x + 1,y[x] + ymin[x] - 1);
                    cout << i[rand()%36];
                }
            }
            if (ymin[x] > 25) 
            {
                ymin[x] = 1;
                y[x] = 0;
            }
        }
        Sleep(35);
  }while(!kbhit());
  return 0;
}

Conclusion :


Vous trouverais des commentaires sur ce code dans le fichier source. Je sais que ce code n'est pas un chef-d'oeuvre mais soyez indulgent dans vos remarques car je débute, eviter les critiques gratuites.

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.