عرض سلام و درود به طرفدارای و پرچمدارای پر و پا قرص سی شارپ ;) به کوری چشم حسودا اومدم این پست رو براتون انتشار بدم که یاد بگیرین چطور یه ماتریکس پیج خوب طراحی کنین D; البته باید بگم که این پست رو به عشق محمدصدرا جون نوشتم که قبلا قولش رو بهش داده بودم.
ماتریکس پیج رو قبلا دوست و داداش عزیزم بلک هت(مستر کدر سابق;) اینجا براتون توضیح داد و با بات یکی خوشگلشو براتون نوشت. ولی این یه ماتریکس پیج کنسولی تمام صفحه ست که با سی شارپ مینویسیم.
خب اول یه پروژه کنسول ایجاد کنین و کدها زیر رو تووش اضافه کنین:
static void Main(string[] args)
{
Console.Title = "Virus32";
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.WindowLeft = Console.WindowTop = 0;
Console.WindowHeight = Console.BufferHeight = Console.LargestWindowHeight;
Console.WindowWidth = Console.BufferWidth = Console.LargestWindowWidth;
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.Red;
}
else
{
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.SetCursorPosition(x, inBoxY(y[x] - 2 - (l[x] / 40 * 2), height));
Console.Write(R);
Console.ForegroundColor = ConsoleColor.Green;
}
Console.SetCursorPosition(x, y[x]);
Console.Write(R);
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;
}
خب حالا وقتی پروژه رو استارت کنین، میبینین یه ماتریکس پیج خوشگل کل صفحه رو گرفته:) البته میتونین به صورت گرافیکی هم یه ناناز ترشو طراحی کنین که زیاد سخت نی :) میسپارم به خودتون.
و اینکه رنگ و تیتر و همه چی رو طبق سفارشی خودتون تغییر بدین و ...
من دیه برم فقط اومدم به قولم عمل کرده باشم و پرچم سی شارپ رو همچنان بالا نگه دارم ;) تا درودی دیگر به درود :)
ماشالا فعالیت رو بردی بالا