static void Main(string[] args)
        {
            FigureContainer container          = new FigureContainer();
            const int       xStart             = 20;
            const int       yStart             = 20;
            int             indexCurrentFigure = 0;

            UI.StartShow();
            UI.Kevt.KeyPress += (sender, e) =>
            {
                UI.ShowIndex(indexCurrentFigure);
                Figure2D tempFig;

                switch (e.Key.Key)
                {
                case ConsoleKey.D1:
                    ColorFig col = GetColor();
                    tempFig            = new Triangle(xStart, yStart, col, new Point2D(25, 25, col, false), new Point2D(15, 25, col, false), false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D2:
                    tempFig            = new Square(xStart, yStart, GetColor(), 6, false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D3:
                    tempFig            = new Rectangle(xStart, yStart, GetColor(), 12, 4, false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D4:
                    tempFig            = new Circle(xStart, yStart, GetColor(), 3, false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D5:
                    tempFig            = new Ellipse(xStart, yStart, GetColor(), 8, 2, false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D6:
                    container.Delete(indexCurrentFigure);
                    indexCurrentFigure = ChooseAnotherFigure(container, indexCurrentFigure);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D7:
                    if (container[indexCurrentFigure])
                    {
                        container.Hide(indexCurrentFigure, false);
                    }
                    else
                    {
                        container.Hide(indexCurrentFigure, true);
                    }

                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D8:
                    container.Rotate(indexCurrentFigure);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.D9:
                    tempFig            = new CircleInSquare(xStart, yStart, GetColor(), 6, false);
                    indexCurrentFigure = container.Add(tempFig);
                    UI.Show(container.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
                    break;

                case ConsoleKey.LeftArrow:
                    Move(container, indexCurrentFigure, -1, 0);
                    break;

                case ConsoleKey.RightArrow:
                    Move(container, indexCurrentFigure, 1, 0);
                    break;

                case ConsoleKey.DownArrow:
                    Move(container, indexCurrentFigure, 0, 1);
                    break;

                case ConsoleKey.UpArrow:
                    Move(container, indexCurrentFigure, 0, -1);
                    break;

                case ConsoleKey.Add:
                    IncreaseFigure(container, indexCurrentFigure);
                    break;

                case ConsoleKey.Subtract:
                    ReduceFigure(container, indexCurrentFigure);
                    break;

                case ConsoleKey.PageUp:
                    for (int i = indexCurrentFigure; i < container.Length - 1; i++)
                    {
                        if (container.GetExistFigure(indexCurrentFigure + 1) != false)
                        {
                            indexCurrentFigure++;
                            break;
                        }
                    }
                    break;

                case ConsoleKey.PageDown:
                    for (int i = indexCurrentFigure; i > 0; i--)
                    {
                        if (container.GetExistFigure(indexCurrentFigure - 1) != false)
                        {
                            indexCurrentFigure--;
                            break;
                        }
                    }
                    break;
                }
            };

            UI.GetPush();
        }
 private static void Move(FigureContainer source, int index, int dx, int dy)
 {
     source.Move(index, dx, dy);
     UI.Show(source.BuildScreen(UI.WindowWidth, UI.WindowHeight - 2));
 }