Консольная матрица на C++. На 1 курсе после первых лекций по программированию я заболел программированием. Сейчас эта болезнь прошла, но плоды издевательств остались и сейчас. В примерах ниже я пишу консольную матрицу. А фактически полоски зеленых символов ползущих сверху вниз по экрану :)
Первые версии матрицы просто выводили случайные зеленые символы, следующие были посовременнее и имели задержку, направление движения и т.п.
Версия №1.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int i,a,b,c;
void blue();
void red();
void green();
int main(int argc, char* argv[])
{
int ax;
randomize();
for(int s=0;s<5;i++)
{
for(i=0;i<10000;i++)
{
textcolor(RED);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(GREEN);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(BLUE);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(GREEN);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(MAGENTA);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(YELLOW);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
for(i=0;i<10000;i++)
{
textcolor(BROWN);
a = random(80);
b = random(25);
c = random(2);
gotoxy(a,b);
cout<<c;
}
clrscr();
}
clrscr();
}
С тех пор утекло много воды, и версия матрицы было около 20 штук. В аттаче внизу они все приложены.
Последняя выглидят примерно так. Кода значительно меньше, а аффекты круче ;)
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int i,n,a;
int main(int argc, char* argv[])
{
char q;
randomize();
int *x,*y,*l;
cout<<"Введи количество дорожек :";
cin>>n;
clrscr();
x = new int [n];
y = new int [n];
l = new int [n];
textmode(C4350);
textattr(2<<0);
do
{
for(i=0;i<n;i++)
{
x[i] = random(80);
if((x[i]%2)==1) x[i]++;
y[i] = random(25);
l[i] = random(40);
if ((y[i]+l[i])>52) l[i] = random(30);
}
for(int s=0;s<25;s++)
{
for(int i=0;i<n;i++)
{
q = random(256);
if (q==7) continue;
gotoxy(x[i],y[i]);
cprintf("%c",q);
gotoxy(x[i],y[i]+1);
cprintf("\r");
Sleep(10);
y[i]++;
}
}
}while(1);
}
matrix.zip
matrix_6_b2.exe
Написать комментарий