Just copy and paste.
Spoiler (Click to Hide)
#define readkey
using System;
namespace m7tr1x
{
class Program
{
static void Main(string[ ] args)
{
Console.Title = "tH3 M7tr1x 3ff3<t";
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WindowLeft = Console.WindowTop = 0;
Console.WindowHeight = Console.BufferHeight = Console.LargestWindowHeight;
Console.WindowWidth = Console.BufferWidth = Console.LargestWindowWidth;
#if readkey
Console.WriteLine("H1T 7NY K3Y T0 C0NT1NU3 =/");
Console.ReadKey();
#endif
Console.CursorVisible = false;
int width, height;
int[ ] y;
int[ ] l;
Initialize(out width, out height, out y, out l);
int ms;
while ( true )
{
DateTime t1 = DateTime.Now;
MatrixStep(width, height, y, l);
ms = 10 - (int)( (TimeSpan)( DateTime.Now - t1 ) ).TotalMilliseconds;
if ( ms > 0 )
System.Threading.Thread.Sleep(ms);
if ( Console.KeyAvailable )
if ( Console.ReadKey().Key == ConsoleKey.F5 )
Initialize(out width, out height, out y, out l);
}
}
static bool thistime = false;
private static void MatrixStep(int width, int height, int[ ] y, int[ ] l)
{
int x;
thistime = !thistime;
for ( x = 0 ; x < width ; ++x )
{
if ( x % 11 == 10 )
{
if ( !thistime )
continue;
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.SetCursorPosition(x, inBoxY(y[x] - 2 - ( l[x] / 40 * 2 ), height));
Console.Write;
Console.ForegroundColor = ConsoleColor.Green;
}
Console.SetCursorPosition(x, y[x]);
Console.Write;
y[x] = inBoxY(y[x] + 1, height);
Console.SetCursorPosition(x, inBoxY(y[x] - l[x], height));
Console.Write(' ');
}
}
private static void Initialize(out int width, out int height, out int[ ] y, out int[ ] l)
{
int h1;
int h2 = ( h1 = ( height = Console.WindowHeight ) / 2 ) / 2;
width = Console.WindowWidth - 1;
y = new int[width];
l = new int[width];
int x;
Console.Clear();
for ( x = 0 ; x < width ; ++x )
{
y[x] = r.Next(height);
l[x] = r.Next(h2 * ( ( x % 11 != 10 ) ? 2 : 1 ), h1 * ( ( x % 11 != 10 ) ? 2 : 1 ));
}
}
static Random r = new Random();
static char R
{
get
{
int t = r.Next(10);
if ( t <= 2 )
return (char)( '0' + r.Next(10) );
else if ( t <= 4 )
return (char)( 'a' + r.Next(27) );
else if ( t <= 6 )
return (char)( 'A' + r.Next(27) );
else
return (char)( r.Next(32, 255) );
}
}
public static int inBoxY(int n, int height)
{
n = n % height;
if ( n < 0 )
return n + height;
else
return n;
}
}
}
Spoiler (Click to Hide)
#define readkey
using System;
namespace m7tr1x
{
class Program
{
static void Main(string[ ] args)
{
Console.Title = "tH3 M7tr1x 3ff3<t";
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WindowLeft = Console.WindowTop = 0;
Console.WindowHeight = Console.BufferHeight = Console.LargestWindowHeight;
Console.WindowWidth = Console.BufferWidth = Console.LargestWindowWidth;
#if readkey
Console.WriteLine("H1T 7NY K3Y T0 C0NT1NU3 =/");
Console.ReadKey();
#endif
Console.CursorVisible = false;
int width, height;
int[ ] y;
int[ ] l;
Initialize(out width, out height, out y, out l);
int ms;
while ( true )
{
DateTime t1 = DateTime.Now;
MatrixStep(width, height, y, l);
ms = 10 - (int)( (TimeSpan)( DateTime.Now - t1 ) ).TotalMilliseconds;
if ( ms > 0 )
System.Threading.Thread.Sleep(ms);
if ( Console.KeyAvailable )
if ( Console.ReadKey().Key == ConsoleKey.F5 )
Initialize(out width, out height, out y, out l);
}
}
static bool thistime = false;
private static void MatrixStep(int width, int height, int[ ] y, int[ ] l)
{
int x;
thistime = !thistime;
for ( x = 0 ; x < width ; ++x )
{
if ( x % 11 == 10 )
{
if ( !thistime )
continue;
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.SetCursorPosition(x, inBoxY(y[x] - 2 - ( l[x] / 40 * 2 ), height));
Console.Write;
Console.ForegroundColor = ConsoleColor.Green;
}
Console.SetCursorPosition(x, y[x]);
Console.Write;
y[x] = inBoxY(y[x] + 1, height);
Console.SetCursorPosition(x, inBoxY(y[x] - l[x], height));
Console.Write(' ');
}
}
private static void Initialize(out int width, out int height, out int[ ] y, out int[ ] l)
{
int h1;
int h2 = ( h1 = ( height = Console.WindowHeight ) / 2 ) / 2;
width = Console.WindowWidth - 1;
y = new int[width];
l = new int[width];
int x;
Console.Clear();
for ( x = 0 ; x < width ; ++x )
{
y[x] = r.Next(height);
l[x] = r.Next(h2 * ( ( x % 11 != 10 ) ? 2 : 1 ), h1 * ( ( x % 11 != 10 ) ? 2 : 1 ));
}
}
static Random r = new Random();
static char R
{
get
{
int t = r.Next(10);
if ( t <= 2 )
return (char)( '0' + r.Next(10) );
else if ( t <= 4 )
return (char)( 'a' + r.Next(27) );
else if ( t <= 6 )
return (char)( 'A' + r.Next(27) );
else
return (char)( r.Next(32, 255) );
}
}
public static int inBoxY(int n, int height)
{
n = n % height;
if ( n < 0 )
return n + height;
else
return n;
}
}
}