private void FourthInterfaceSetup_PayoffDistributionAndSufficiency()
        {
            Random R = new Random((int)DateTime.Now.Ticks);

            //CGStudentProgress.DistributionType = R.Next(0, 2); //0 = contribution in a coalition price; 1 = incooperative payoff
            CGStudentProgress.DistributionType = 1;
            if (CGStudentProgress.DistributionType == 0)
            {
                PayoffDivisionLabel.Text += " с учетом индивидуальных вкладов\nигроков в выигрыш коалиции.";
            }
            else
            {
                PayoffDivisionLabel.Text += " с учетом индивидуальных выигрышей\nигроков в некооперативной игре.";
            }

            PayoffDivisionLabel.TextAlign = ContentAlignment.MiddleCenter;

            CoalitionAPayoffLabel.Text += G.SingleGames[0].FirstPlayer + " = " + G.SingleGames[0].Ha.ToString("0.00");
            CoalitionBPayoffLabel.Text += G.SingleGames[0].SecondPlayer + " = " + G.SingleGames[0].Hb.ToString("0.00");;
            GameFunctionLabel.Text     += (G.SingleGames[0].Ha + G.SingleGames[0].Hb).ToString("0.00");
            for (int i = 0; i < G.SingleGames[0].x.Count; i++)
            {
                x.Text += G.SingleGames[0].x[i].ToString("0.00") + " ";
            }
            x.Text += ")";

            for (int i = 0; i < G.SingleGames[0].y.Count; i++)
            {
                y.Text += G.SingleGames[0].y[i].ToString("0.00") + " ";
            }
            y.Text += ")";

            UI.ControlsAligner quizpanel = new UI.ControlsAligner(PayoffDivisionPanel);
            quizpanel.AddElement(GameFunctionLabel);
            quizpanel.AddElement(CoalitionAPayoffLabel);
            quizpanel.AddElement(CoalitionBPayoffLabel, false);
            quizpanel.AddElement(x);
            quizpanel.AddElement(y);
            quizpanel.AddElement(SufficiencyLabel);
            quizpanel.AddElement(YesRB_CG);
            quizpanel.AddElement(NoRB_CG, false);

            quizpanel.AddElement(FirstLine);

            quizpanel.AddElement(PayoffDivisionLabel);
            for (int i = 0; i < Database.G.N; i++)
            {
                Label l = new Label();
                l.Text      = "µ(" + (i + 1) + ") = ";
                l.Font      = new System.Drawing.Font("Bookman Old Style", 14);
                l.ForeColor = Color.White;
                l.Size      = TextRenderer.MeasureText(l.Text, l.Font);

                TextBox tb = new TextBox();
                tb.Font      = new System.Drawing.Font("Bookman Old Style", 16);
                tb.TextAlign = HorizontalAlignment.Center;
                tb.Width     = 100;
                tb.Text      = "";

                if (i == 0)
                {
                    quizpanel.AddElement(l, true);
                }
                else
                {
                    quizpanel.AddElement(l, false);
                }
                quizpanel.AddElement(tb, false, "HorBind");

                PayoffDivisionPanel.Controls.Add(l);
                PayoffDivisionPanel.Controls.Add(tb);
                PayoffDistributionTB.Add(tb);
            }

            quizpanel.AddElement(SecondLine);

            quizpanel.AddElement(DistributionRationalityLabel);
            quizpanel.AddElement(RationalityPanel, true, "Stretch");
            quizpanel.Align();
            RationalityPanel.Top -= 10;

            Graphical2x2SolutionPanel.Hide();
            PayoffDivisionPanel.Show();
            MatrixesPanel.Hide();

            UI.ControlsAligner form = new UI.ControlsAligner(this);
            form.AddElement(PayoffDivisionPanel);
            form.AddElement(SkipBTN, true, "Left");
            form.AddElement(FinishBTN, false, "Right");
            form.Align();

            UI.ControlsAligner rpanel = new UI.ControlsAligner(RationalityPanel);
            rpanel.AddElement(YesRB_RD);
            rpanel.AddElement(NoRB_RD, false);
            rpanel.Align(true);
        }
        private void ThirdInterfaceSetup_GraphicalSolution(bool skipped)
        {
            Task2Panel.Hide();

            if (skipped)
            {
                List <int>    Drows    = new List <int>();
                List <int>    Dcolumns = new List <int>();
                List <string> Cheaders = new List <string>();
                List <string> Rheaders = new List <string>();
                SingleGame    D        = G.SingleGames[0].Dominate(Drows, Dcolumns);

                for (int i = 0; i < Drows.Count; i++)
                {
                    Rheaders.Add(A.Rows[Drows[i]].HeaderCell.Value.ToString());
                }
                for (int i = 0; i < Dcolumns.Count; i++)
                {
                    Cheaders.Add(A.Columns[Dcolumns[i]].HeaderCell.Value.ToString());
                }
                Ga             = new UI.StrategiesGrid(A, D.A.Count, D.A[0].Count);
                Gb             = new UI.StrategiesGrid(B, D.A.Count, D.A[0].Count);
                Ga.LimitedSize = true;
                Gb.LimitedSize = true;
                Ga.InitializeHeaders("", G.SingleGames[0].FirstPlayer, G.SingleGames[0].SecondPlayer, Database.G.S);
                Gb.InitializeHeaders("", G.SingleGames[0].FirstPlayer, G.SingleGames[0].SecondPlayer, Database.G.S);
                Ga.InitializeGrid(D.A);
                Gb.InitializeGrid(D.B);
                for (int i = 0; i < A.Rows.Count; i++)
                {
                    A.Rows[i].HeaderCell.Value = Rheaders[i];
                    B.Rows[i].HeaderCell.Value = Rheaders[i];
                }
                for (int j = 0; j < A.ColumnCount; j++)
                {
                    A.Columns[j].HeaderCell.Value = Cheaders[j];
                    B.Columns[j].HeaderCell.Value = Cheaders[j];
                }
            }

            if ((A.Rows.Count == 2) && (A.Columns.Count == 2))
            {
                Graphical2x2SolutionPanel.Show();

                UI.ControlsAligner gpanel = new UI.ControlsAligner(MatrixesPanel);
                gpanel.AddElement(A);
                gpanel.AddElement(B, false);
                gpanel.Align();

                UI.ControlsAligner form = new UI.ControlsAligner(this);
                form.AddElement(MatrixesPanel);
                form.AddElement(Graphical2x2SolutionPanel);
                form.AddElement(SkipBTN, true, "Left");
                form.AddElement(FinishBTN, false, "Right");
                form.Align();
            }
            else
            {
                CGStudentProgress.NewSection();
                FourthInterfaceSetup_PayoffDistributionAndSufficiency();
            }
        }