Esempio n. 1
0
        private static void RandomColorsForever()
        {
            VTConsole.CursorSetBlinking(false);
            VTConsole.CursorSetVisibility(true);
            VTConsole.SetColorBackground(Color.Black);
            VTConsole.SetColorForeground(Color.White);

            Console.Clear();
            Console.SetCursorPosition(5, 8);
            VTConsole.Write("Hi there", Color.FromArgb(0, 255, 0));
            Console.SetCursorPosition(0, 0);

            int r = 0;
            int g = 0;
            int b = 0;

            //for (var column = 0; column < Console.BufferWidth; column++)
            while (!Console.KeyAvailable)
            {
                // Set column to random and row to 0
                var randomColumn = new Random().Next(0, Console.BufferWidth);
                Console.SetCursorPosition(randomColumn, 0);

                for (var row = 0; row < Console.WindowHeight - 1; row++)
                {
                    // Always move the cursor down
                    VTConsole.CursorMoveDown();

                    var percentageChance = new Random().Next(100);

                    //if (percentageChance == 50)
                    //{
                    //    VTConsole.CursorPosition(new Random().Next(1, Console.WindowHeight), new Random().Next(1, Console.WindowWidth - 1));
                    //    var datetimeString = DateTime.Now.ToString("hh:mm:ss");
                    //    VTConsole.Write(datetimeString, Color.Black);
                    //    VTConsole.CursorMoveLeft(datetimeString.Length);
                    //}

                    // Randomly print a new block colour
                    if (percentageChance < 40)
                    {
                        var random = new Random();
                        r = random.Next(255);
                        g = random.Next(255);
                        b = random.Next(255);

                        // Values will only ever be slightly over 255
                        if (r > 255)
                        {
                            r -= 255;
                        }
                        if (g > 255)
                        {
                            g -= 255;
                        }
                        if (b > 255)
                        {
                            b -= 255;
                        }

                        // Vibrant colours only
                        //bool vibrantColours = true;
                        //if (vibrantColours)
                        //{
                        //    // Make the lowest value = 0
                        //    if (r < g && r < b)
                        //        r = 0;
                        //    else if (g < r && g < b)
                        //        g = 0;
                        //    else if (b < g && b < r)
                        //        b = 0;
                        //}

                        //Debug.WriteLine($"r:{r} g:{g} b:{b}");

                        // vertical strip dark at the top
                        VTConsole.Write(" ", Color.Black, Color.FromArgb(Convert.ToInt32(r / 1.5), Convert.ToInt32(g / 1.5), Convert.ToInt32(b / 1.5)));
                        VTConsole.CursorMoveDown();
                        VTConsole.CursorMoveLeft();
                        VTConsole.Write(" ", Color.Black, Color.FromArgb(Convert.ToInt32(r / 1.2), Convert.ToInt32(g / 1.2), Convert.ToInt32(b / 1.2)));
                        VTConsole.CursorMoveDown();
                        VTConsole.CursorMoveLeft();
                        VTConsole.Write(" ", Color.Black, Color.FromArgb(r, g, b));


                        VTConsole.CursorMoveLeft();
                    }
                    else
                    {
                        VTConsole.Write(" ", Color.Black, Color.Black);
                        VTConsole.CursorMoveDown();
                        VTConsole.CursorMoveLeft();
                        VTConsole.Write(" ", Color.Black, Color.Black);
                        VTConsole.CursorMoveDown();
                        VTConsole.CursorMoveLeft();
                        VTConsole.Write(" ", Color.Black, Color.Black);


                        VTConsole.CursorMoveLeft();
                    }

                    //Thread.Sleep(5);
                }
            }
        }