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; }
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(); }
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); } }
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; }
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; } }
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; }
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; }
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); } }
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); } } }
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; }