Ejemplo n.º 1
0
        private void InitAddParamGrid()
        {
            Graphic_Interface.Grid APG = new Graphic_Interface.Grid(G, Math.Max
                                                                        (Information.AP_Names.Count, 1), 2, "N", "T");
            APG.initialize();
            G.Columns[0].HeaderText = "Name";
            G.Columns[0].DefaultCellStyle.BackColor = Color.WhiteSmoke;
            G.Columns[0].DefaultCellStyle.ForeColor = Color.Maroon;
            G.Columns[1].HeaderText = "Variable";
            G.Columns[1].DefaultCellStyle.BackColor = Color.WhiteSmoke;
            G.Columns[1].DefaultCellStyle.ForeColor = Color.Maroon;

            APG.create_headers();

            for (int i = 0; i < G.Rows.Count - 1; i++)
            {
                G[0, i].Value = Information.AP_Names[i + 1];
                G[1, i].Value = Information.AP_KeyLetters[i + 1];
            }


            this.Width             = MP_InitTB.Right + 30;
            AdditionalPanel.Width  = this.Width;
            this.Height            = AdditionalPanel.Top + G.Height + 100;
            AdditionalPanel.Height = G.Height + 100;
        }
Ejemplo n.º 2
0
        private void CreateGrids(int CritGridRowsNumber)
        {
            //Criteria Grid
            Graphic_Interface.Grid C = new Graphic_Interface.Grid(CritGrid, CritGridRowsNumber, 4, "N", "T");
            C.initialize();
            CritGrid.AllowUserToResizeRows   = true;
            CritGrid.TopLeftHeaderCell.Value = "№";
            CritGrid.Columns[0].HeaderText   = "Criterion";
            CritGrid.Columns[1].HeaderText   = "Units of \n measurement";
            CritGrid.Columns[2].HeaderText   = "Worst value";
            CritGrid.Columns[3].HeaderText   = "Best value";
            C.create_headers();

            for (int i = 0; i < CritGridRowsNumber; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    CritGrid[j, i].Value = DefaultValues[j];
                }
            }

            //Alternatives Grid
            Graphic_Interface.Grid A = new Graphic_Interface.Grid(AltGrid, 1, 1, "N", "T");
            A.initialize();
            AltGrid.TopLeftHeaderCell.Value = "№";
            AltGrid.Columns[0].HeaderText   = "";
            A.create_headers();
        }
Ejemplo n.º 3
0
        private void Players()
        {
            Graphic_Interface.Grid PNGrid = new Graphic_Interface.Grid
                                                (PlayersGrid, 1, Information.players_number, "T", "TWDN");

            PNGrid.fontsize = 12;
            PNGrid.initialize();
            PlayersGrid.Rows[0].HeaderCell.Value = "Names";
            PlayersGrid.AllowUserToResizeColumns = false;
            PNGrid.column_header_text            = "Player";
            PNGrid.create_headers();

            int Old = NamesPanel.Height,
                New = PlayersGrid.Bottom + 20;

            NamesPanel.Height = New;
            IBPanel.Top      += New - Old;
            this.Height      += New - Old;

            for (int i = 0; i < Information.PlayersNames.Count; i++)
            {
                PlayersGrid[i, 0].Value = Information.PlayersNames[i];
                Graphic_Interface.Analyzer.ResizeColumn(this, true, PlayersGrid, 0, i, Information.PlayersNames[i], -1);
            }
        }
Ejemplo n.º 4
0
        public DebugForm(List <List <double> > LHA, List <List <double> > LHB)
        {
            InitializeComponent();

            Graphic_Interface.Grid G1 = new Graphic_Interface.Grid(dataGridView1, LHA.Count, LHA[0].Count, "T", "N");
            G1.initialize();
            dataGridView1.Rows[0].HeaderCell.Value = "Рекламировать";
            dataGridView1.Rows[1].HeaderCell.Value = "Понижение стоимости";
            dataGridView1.Rows[2].HeaderCell.Value = "Цена +";
            dataGridView1.Rows[3].HeaderCell.Value = "Цена -";
            dataGridView1.Rows[4].HeaderCell.Value = "Ничего";

            Graphic_Interface.Grid G2 = new Graphic_Interface.Grid(dataGridView2, LHA.Count, LHA[0].Count, "T", "N");
            G2.initialize();
            dataGridView2.Rows[0].HeaderCell.Value = "Рекламировать";
            dataGridView2.Rows[1].HeaderCell.Value = "Понижение стоимости";
            dataGridView2.Rows[2].HeaderCell.Value = "Цена +";
            dataGridView2.Rows[3].HeaderCell.Value = "Цена -";
            dataGridView2.Rows[4].HeaderCell.Value = "Ничего";

            for (int i = 0; i < LHA.Count; i++)
            {
                for (int j = 0; j < LHA[i].Count; j++)
                {
                    dataGridView1[j, i].Value = (LHA[i][j] * 100).ToString("0");
                    dataGridView2[j, i].Value = (LHB[i][j] * 100).ToString("0");
                    Graphic_Interface.Analyzer.ResizeColumn(this, false, dataGridView1, i, j, dataGridView1[j, i].Value.ToString(), 100);
                    Graphic_Interface.Analyzer.ResizeColumn(this, false, dataGridView2, i, j, dataGridView2[j, i].Value.ToString(), 100);
                }
            }

            G1.create_headers();
            G2.create_headers();

            dataGridView2.Left = dataGridView1.Right + 20;

            button1.Top = dataGridView1.Bottom + 20;
            Done.Top    = button1.Top;

            this.Height = button1.Bottom + 50;
            this.Width  = dataGridView2.Right + 50;
        }
Ejemplo n.º 5
0
        private void CreateValuesGrid(int N)
        {
            Graphic_Interface.Grid ValuesGrid = new Graphic_Interface.Grid(dataGridView1, 1, N, "T", "N");
            ValuesGrid.initialize();
            dataGridView1.TopLeftHeaderCell.Value  = "Player";
            dataGridView1.Rows[0].HeaderCell.Value = "Values";
            ValuesGrid.create_headers();

            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                dataGridView1.Rows[0].Cells[i].Value = 10 * (i + 1);
            }

            if (dataGridView1.Width + 10 > panel4.Width)
            {
                int Add = (dataGridView1.Width + 10 - panel4.Width);
                panel1.Width += Add;
                panel2.Width += Add;
                panel3.Width += Add;
                panel4.Width += Add;
                panel5.Width += Add;
                button1.Left += Add;
                this.Width   += Add;
            }
            else
            {
                dataGridView1.Left = (panel4.Width - dataGridView1.Width) / 2;
            }

            if (dataGridView1.Height + 10 > panel4.Height)
            {
                int Diff = dataGridView1.Height - panel4.Height + 10;
                button1.Top   += Diff;
                button2.Top   += Diff;
                panel4.Height += Diff;
                this.Height   += Diff;
            }
        }
Ejemplo n.º 6
0
        private void IrrationalBehaviour()
        {
            Graphic_Interface.Grid IBGrid = new Graphic_Interface.Grid(PIBGrid, 1, Information.players_number, "T", "TWDN");
            IBGrid.fontsize = 12;
            IBGrid.initialize();
            PIBGrid.Rows[0].HeaderCell.Value = "Probability";
            IBGrid.column_header_text        = "Player";
            IBGrid.create_headers();

            //Correct number of elements in Irrational Behaviour
            for (int j = Information.PlayersIrrationalBehaviour.Count; j < Information.players_number; j++)
            {
                Information.PlayersIrrationalBehaviour.Add(0);
            }

            for (int i = 0; i < Information.players_number; i++)
            {
                PIBGrid.Rows[0].Cells[i].Value = Information.PlayersIrrationalBehaviour[i];
            }

            //IBPanel.Height = PIBGrid.Bottom + 20;
            //IBPanel.Width = PIBGrid.Right + 20;
        }
Ejemplo n.º 7
0
        public ParametersWeightsForm(GamePosition GP)
        {
            InitializeComponent();
            gp = GP;

            this.Text = "Parameters importance: '";
            if (GP.name != null)
            {
                this.Text += GP.name;
            }
            else
            {
                this.Text += GP.ID;
            }
            this.Text += "' position";

            Graphic_Interface.Grid G = new Graphic_Interface.Grid(dataGridView1, Information.AP_Names.Count, gp.N, "T", "T");
            G.initialize();
            dataGridView1.TopLeftHeaderCell.Value = "Parameters weights";
            for (int i = 0; i < Information.AP_Names.Count - 1; i++)
            {
                dataGridView1.Rows[i].HeaderCell.Value = Information.AP_Names[i + 1];
            }

            for (int i = 0; i < Information.AP_Names.Count; i++)
            {
                dataGridView1.Rows[i].HeaderCell.Value = Information.AP_Names[i] + " (" + Information.AP_KeyLetters[i] + ")";
            }

            for (int i = 0; i < gp.N; i++)
            {
                string Key = "";
                if ((Information.PlayersNames[i] == "") || (Information.PlayersNames[i] == null))
                {
                    Key = "Player " + (i + 1).ToString();
                }
                else
                {
                    Key = Information.PlayersNames[i];
                }

                dataGridView1.Columns[i].HeaderText = Key;
            }

            if (gp.Weights.Count < Information.AP_Names.Count)
            {
                int gpWC = gp.Weights.Count;
                for (int i = gpWC; i < Information.AP_Names.Count; i++)
                {
                    gp.Weights.Add(new List <string>());
                    for (int j = 0; j < gp.N; j++)
                    {
                        gp.Weights[i].Add("0");
                    }
                }
            }

            for (int i = 0; i < Information.AP_Names.Count; i++)
            {
                for (int j = 0; j < gp.N; j++)
                {
                    if (gp.Weights[i][j] == "")
                    {
                        gp.Weights[i][j] = "0";
                    }
                    dataGridView1[j, i].Value = gp.Weights[i][j];
                }
            }

            G.create_headers();

            this.Width  = dataGridView1.Right + dataGridView1.Left + 40;
            this.Height = dataGridView1.Top + dataGridView1.Bottom + 60;
        }
Ejemplo n.º 8
0
        private void CreateStrategiesCombinationsGrid(DataGridView dg_view, List <DataGridView> payoffs)
        {
            this.Controls.Add(dg_view);
            List <string> Names = new List <string>();

            for (int i = 0; i < Information.players_number; i++)
            {
                if (gp.ActivePlayers[i])
                {
                    if (Information.PlayersNames[i] == "")
                    {
                        Names.Add("Player " + (i + 1).ToString());
                    }
                    else
                    {
                        Names.Add(Information.PlayersNames[i]);
                    }
                }
            }

            Graphic_Interface.Grid dg = new Graphic_Interface.Grid(dg_view, gp.children.Count, 0, "TWDN", "T");
            dg.row_header_text      = "Combination";
            dg.ComboBoxColumnsCount = gp.N;
            List <List <string> > l = new List <List <string> >();

            for (int i = 0; i < gp.N; i++)
            {
                l.Add(new List <string>());
                for (int j = 0; j < gp.Strategies[i]; j++)
                {
                    l[i].Add(Information.strategy_letters[i] + (j + 1).ToString());
                }
            }
            dg.combobox_items = l;
            dg.initialize();
            for (int i = 0; i < gp.N; i++)
            {
                dg_view.Columns[i].HeaderText = Names[i];
            }
            dg.create_headers();

            if (gp.Combinations.Count > 0)
            {
                for (int ii = 0; ii < gp.Combinations.Count; ii++)
                {
                    for (int jj = 0; jj < gp.Combinations[ii].Count; jj++)
                    {
                        string Combination = gp.Combinations[ii][jj];
                        for (int m = 0; m < (dg_view.Rows[0].Cells[jj]
                                             as DataGridViewComboBoxCell).Items.Count; m++)
                        {
                            if ((dg_view.Rows[ii].Cells[jj] as DataGridViewComboBoxCell).Items[m].ToString() == Combination)
                            {
                                dg_view.Rows[ii].Cells[jj].Value =
                                    (dg_view.Rows[ii].Cells[jj] as DataGridViewComboBoxCell).Items[m];
                            }
                        }
                    }
                }
                dg_view.CellEndEdit += new DataGridViewCellEventHandler(DgCombinations_CellValidated);
            }
            else
            {
                for (int i = 0; i < gp.N; i++)
                {
                    double max         = 0;
                    int    OptStrategy = 0;
                    for (int j = 0; j < payoffs[i].RowCount; j++)
                    {
                        if (Convert.ToDouble(payoffs[i].Rows[j].Cells[0].Value) > max)
                        {
                            max         = Convert.ToDouble(payoffs[i].Rows[j].Cells[0].Value);
                            OptStrategy = j;
                        }
                    }
                    dg_view.Rows[0].Cells[i].Value = (dg_view.Rows[0].Cells[i] as DataGridViewComboBoxCell).Items[OptStrategy];
                }
                dg_view.CellEndEdit += new DataGridViewCellEventHandler(DgCombinations_CellValidated);
                //dg_view.CellValidated += new DataGridViewCellEventHandler(DgCombinations_CellValidated);
            }
        }
Ejemplo n.º 9
0
        private void CreateUtilitiesGrid(List <DataGridView> dg_view)
        {
            List <string> Names = new List <string>();

            for (int i = 0; i < Information.players_number; i++)
            {
                if (gp.ActivePlayers[i])
                {
                    if (Information.PlayersNames[i] == "")
                    {
                        Names.Add("Player " + (i + 1).ToString());
                    }
                    else
                    {
                        Names.Add(Information.PlayersNames[i]);
                    }
                }
            }

            for (int pl1 = 0; pl1 < gp.N; pl1++)
            {
                dg_view.Add(new DataGridView());
                this.Controls.Add(dg_view[pl1]);
                Graphic_Interface.Grid dg = new Graphic_Interface.Grid(dg_view[pl1], gp.Strategies[pl1], 1, "S", "T");
                dg.first_plnum = pl1;
                dg.initialize();
                dg_view[pl1].Columns[0].HeaderText = "Payoff";

                dg_view[pl1].TopLeftHeaderCell.Value = Names[pl1];

                dg.create_headers();
                if (pl1 == 0)
                {
                    dg_view[pl1].Left = 10;
                }
                else
                {
                    dg_view[pl1].Left = dg_view[pl1 - 1].Right + 20;
                }

                for (int i = 0; i < gp.Strategies[pl1]; i++)
                {
                    double u = 0;
                    for (int pl2 = 0; pl2 < gp.N; pl2++)
                    {
                        if (pl1 != pl2)
                        {
                            for (int j = 0; j < gp.Strategies[pl2]; j++)
                            {
                                int ii = i, jj = j;
                                if (pl1 > pl2)
                                {
                                    ii = j;
                                    jj = i;
                                }
                                u += gp.OptimalStrategy_R[pl2][pl1][j] * gp.Utility[pl1][pl2][ii][jj];
                                // * gp.OptimalStrategy_R[pl1][pl2][i]
                            }
                        }
                    }
                    dg_view[pl1].Rows[i].Cells[0].Value = u.ToString("0.00");
                    Graphic_Interface.Analyzer.ResizeColumn(this, false, dg_view[pl1], i, 0, u.ToString("0.00"), 100);
                }
            }
        }
Ejemplo n.º 10
0
        private void create_strategies_grid(DataGridView dg_view)
        {
            this.Controls.Add(dg_view);

            //Correct number of elements in Irrational Behaviour
            if (Information.PlayersIrrationalBehaviour.Count < gp.N)
            {
                for (int j = Information.PlayersIrrationalBehaviour.Count; j < gp.N; j++)
                {
                    Information.PlayersIrrationalBehaviour.Add(0);
                }
            }


            //Calculate modified strategy vectors
            for (int i = 0; i < gp.N; i++)
            {
                double avg = 1.00 / gp.Strategies[i];
                for (int j = 0; j < gp.N; j++)
                {
                    double sum = 0;
                    for (int k = 0; k < gp.LHStrategy[i][j].Count; k++)
                    {
                        if (gp.LHStrategy[i][j][k] < avg)
                        {
                            gp.OptimalStrategy_R[i][j][k] = gp.LHStrategy[i][j][k] +
                                                            Information.PlayersIrrationalBehaviour[i] * 2 * (avg - gp.LHStrategy[i][j][k]);
                        }
                        else
                        {
                            gp.OptimalStrategy_R[i][j][k] = gp.LHStrategy[i][j][k] *
                                                            (1 - Information.PlayersIrrationalBehaviour[i]);
                        }

                        sum += gp.OptimalStrategy_R[i][j][k];
                    }

                    for (int k = 0; k < gp.LHStrategy[i][j].Count; k++)
                    {
                        gp.OptimalStrategy_R[i][j][k] *= (1.00 / sum);
                    }
                }
            }

            Graphic_Interface.Grid dg = new Graphic_Interface.Grid(dg_view, gp.N, gp.N, "T", "T");
            dg.initialize();
            int InactiveCount = 0;

            for (int i = 0; i < Information.players_number; i++)
            {
                if (gp.ActivePlayers[i])
                {
                    if (Information.PlayersNames[i] == "")
                    {
                        dg_view.Rows[i - InactiveCount].HeaderCell.Value    = "Player " + (i + 1).ToString();
                        dg_view.Columns[i - InactiveCount].HeaderCell.Value = "Player " + (i + 1).ToString();
                    }
                    else
                    {
                        dg_view.Rows[i - InactiveCount].HeaderCell.Value    = Information.PlayersNames[i];
                        dg_view.Columns[i - InactiveCount].HeaderCell.Value = Information.PlayersNames[i];
                    }
                }
                else
                {
                    InactiveCount++;
                }
            }
            dg.create_headers();
            dg_view.TopLeftHeaderCell.Value = "Strategies";

            for (int i = 0; i < gp.N; i++)
            {
                for (int j = 0; j < gp.N; j++)
                {
                    if (i != j)
                    {
                        string str = "[ ";
                        for (int k = 0; k < gp.Strategies[i]; k++)
                        {
                            if (gp.OptimalStrategy_R[i][j][k] == 0)
                            {
                                str += "0 ";
                            }
                            else
                            {
                                str += gp.OptimalStrategy_R[i][j][k].ToString("0.00") + ' ';
                            }
                        }
                        str += ']';
                        int sWidth = TextRenderer.MeasureText(str, dg.font).Width + 10;
                        dg_view.Rows[i].Cells[j].Value = str;
                        dg_view.Columns[j].Width       = Math.Max(dg_view.Columns[j].Width, sWidth);
                    }
                }
            }
            dg.align_and_width();
            dg.gridsize_correction();
        }
        public ParametersValuesForm(GamePosition GP)
        {
            InitializeComponent();
            gp = GP;

            this.Text = "Parameters values: '";
            if (GP.name != null)
            {
                this.Text += GP.name;
            }
            else
            {
                this.Text += GP.ID;
            }
            this.Text += "' position";

            Graphic_Interface.Grid G = new Graphic_Interface.Grid(dataGridView1, Information.AP_Names.Count, gp.N, "T", "T");
            G.initialize();
            for (int i = 0; i < Information.AP_Names.Count - 1; i++)
            {
                dataGridView1.Rows[i].HeaderCell.Value = Information.AP_Names[i + 1];
            }
            dataGridView1.TopLeftHeaderCell.Value = "Parameters values";
            dataGridView1.Rows[0].ReadOnly        = true;
            for (int i = 0; i < Information.AP_Names.Count; i++)
            {
                dataGridView1.Rows[i].HeaderCell.Value = Information.AP_Names[i] + " (" + Information.AP_KeyLetters[i] + ")";
            }

            for (int i = 0; i < gp.N; i++)
            {
                string Key = "";
                if ((Information.PlayersNames[i] == "") || (Information.PlayersNames[i] == null))
                {
                    Key = "Player " + (i + 1).ToString();
                }
                else
                {
                    Key = Information.PlayersNames[i];
                }

                dataGridView1.Columns[i].HeaderText = Key;
            }
            for (int i = 0; i < gp.N; i++)
            {
                if (gp.cash.Count > i)
                {
                    dataGridView1[i, 0].Value = gp.cash[i];
                }
            }

            for (int i = 0; i < gp.AdParamValues.Count; i++)
            {
                for (int j = 0; j < gp.AdParamValues[i].Count; j++)
                {
                    dataGridView1[j, i + 1].Value = gp.AdParamValues[i][j];
                }
            }

            G.create_headers();

            this.Width  = dataGridView1.Right + dataGridView1.Left + 40;
            this.Height = dataGridView1.Top + dataGridView1.Bottom + 60;
        }