private static void AddСolorIntoGun(RestrictedQueue <ColorPalette> Gun, ColorPalette color)
 {
     if (Gun.Enqueue(color))
     {
         Console.WriteLine($"{color.color} цвет заряжен в пистолете");
     }
 }
        private static void ShootСolor(RestrictedQueue <ColorPalette> Gun)
        {
            if (Gun.GetCount() == 0)
            {
                Console.WriteLine(Gun.EmptyErrorMassage);
                return;
            }
            var color = Gun.Dequeue();

            Console.WriteLine($"{color.color} цветом выстрелили");
        }
        static void Main(string[] args)
        {
            // Задание 1
            Student a = new Student()
            {
                Id = 247909
            };
            Student b = new Student()
            {
                Id = 285428
            };
            Student c = new Student()
            {
                Id = 285417
            };
            List <Student> students = new List <Student>();

            students.Add(a);
            students.Add(b);
            students.Add(c);

            Console.WriteLine("Задание 1");
            PrintStudentID(0, students);
            PrintStudentID(1, students);
            PrintStudentID(2, students);

            // Задание 2
            DoublyLinkedList <ColorPalette> ColorPalettes = new DoublyLinkedList <ColorPalette>();
            ColorPalette Red   = new ColorPalette("Красный");
            ColorPalette Green = new ColorPalette("Зелёный");
            ColorPalette Blue  = new ColorPalette("Синий");

            ColorPalettes.Add(Red);
            ColorPalettes.Add(Green);
            ColorPalettes.Add(Blue);
            var ColorPalette = ColorPalettes.GetHead();

            Console.WriteLine();
            Console.WriteLine("Задание 2");
            do
            {
                Console.Write($"{ColorPalette.Data.color} ");
                ColorPalette = ColorPalette.Next;
            }while (ColorPalette != null);
            Console.Write("\n");

            // Задание 3
            CircularDoublyLinkedList <ColorPalette> trafficLights = new CircularDoublyLinkedList <ColorPalette>();
            ColorPalette Orange = new ColorPalette("Оранжевый");

            trafficLights.Add(Red);
            trafficLights.Add(Orange);
            trafficLights.Add(Green);
            var trafficLightsColorPalette = trafficLights.GetHead();

            Console.WriteLine();
            Console.WriteLine("Задание 3");
            for (int i = 0; i != 3 * trafficLights.GetCount(); i++)
            {
                Console.Write($"{trafficLightsColorPalette.Data.color} ");
                trafficLightsColorPalette = trafficLightsColorPalette.Next;
            }

            // Задание 4
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Задание 4");
            RestrictedQueue <ColorPalette> Gun = new RestrictedQueue <ColorPalette>()
            {
                Limit = 2, LimitErrorMassage = "Пистолет полон", EmptyErrorMassage = "Пистолет пуст"
            };

            AddСolorIntoGun(Gun, Orange);
            ShootСolor(Gun);
            AddСolorIntoGun(Gun, Blue);
            AddСolorIntoGun(Gun, Red);
            AddСolorIntoGun(Gun, Green);
            ShootСolor(Gun);
            ShootСolor(Gun);
            ShootСolor(Gun);

            // Задание 5
            Console.WriteLine();
            Console.WriteLine("Задание 5");
            RestrictedStack <ColorPalette> colorBasket = new RestrictedStack <ColorPalette>()
            {
                hasLimit = true, Limit = 2, LimitErrorMassage = "Обойма заполнена", EmptyErrorMassage = "Обойма пуста"
            };

            PutСolorIntoСartridge(Orange, colorBasket);
            PutСolorIntoСartridge(Blue, colorBasket);
            PutСolorIntoСartridge(Red, colorBasket);
            GetСolorFromСartridge(colorBasket);
            GetСolorFromСartridge(colorBasket);
            PutСolorIntoСartridge(Red, colorBasket);

            // Задание 6
            Console.WriteLine();
            Console.WriteLine("Задание 6");
            LinkedStack <ColorPalette> iceCream = new LinkedStack <ColorPalette>();

            AddColorInIceCream(iceCream, Orange);
            AddColorInIceCream(iceCream, Blue);
            EatColor(iceCream);
            AddColorInIceCream(iceCream, Red);
            EatColor(iceCream);
            EatColor(iceCream);

            // Задание 7
            Console.WriteLine();
            Console.WriteLine("Задание 7");
            PostfixExpressions postfixExpressions = new PostfixExpressions();

            Calculate(postfixExpressions);
            Calculate(postfixExpressions);
        }