Esempio n. 1
0
        static void Main()
        {
            CircularLinkedList <string> categories = CreateCategories();
            Random random        = new();
            int    totalTime     = 0;
            int    remainingTime = 0;

            foreach (string category in categories)
            {
                if (remainingTime <= 0)
                {
                    Console.WriteLine($"Press [ENTER] to start or any other key to exit.");
                    switch (Console.ReadKey().Key)
                    {
                    case ConsoleKey.Enter:
                        totalTime     = random.Next(1_000, 5_000);
                        remainingTime = totalTime;
                        break;

                    default:
                        return;
                    }
                }

                int categoryTime = (-450 * remainingTime / (totalTime - 50)) + 500 + (22_500 / (totalTime - 50));
                remainingTime -= categoryTime;
                Thread.Sleep(categoryTime);

                ConsoleColor consoleColor = Console.ForegroundColor;
                Console.ForegroundColor = remainingTime <= 0 ? ConsoleColor.Red : consoleColor;
                Console.WriteLine(category);
                Console.ForegroundColor = consoleColor;
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            CircularLinkedList <string> categories = new CircularLinkedList <string>();

            categories.AddLast("Sport");
            categories.AddLast("Culture");
            categories.AddLast("History");
            categories.AddLast("Geography");
            categories.AddLast("People");
            categories.AddLast("Technology");
            categories.AddLast("Nature");
            categories.AddLast("Science");

            Random random        = new Random();
            int    totalTime     = 0;
            int    remainingTime = 0;

            foreach (string category in categories)
            {
                if (remainingTime <= 0)
                {
                    Console.WriteLine("Press [ENTER] to start or any other to exit.");
                    switch (Console.ReadKey().Key)
                    {
                    case ConsoleKey.Enter:
                        totalTime     = random.Next(1000, 5000);
                        remainingTime = totalTime;
                        break;

                    default:
                        return;
                    }
                }
                int categoryTime = (-450 * remainingTime) / (totalTime - 50) + 500 + (22500 / (totalTime - 50));
                remainingTime -= categoryTime;
                Thread.Sleep(categoryTime);

                Console.ForegroundColor = remainingTime <= 0 ? ConsoleColor.Red : ConsoleColor.Gray;
                Console.WriteLine(category);
                Console.ForegroundColor = ConsoleColor.Gray;
            }
            Console.ReadLine();
        }