コード例 #1
0
        private void buttonKryteriumSavagea_Click(object sender, EventArgs e)
        {
            List <WierszKolumna> najgorsze             = new List <WierszKolumna>();
            List <WierszKolumna> najlepszeZNajgorszych = new List <WierszKolumna>();
            string kryterium = "Savage'a";

            foreach (DataGridViewRow row in dgv.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Style.BackColor = Color.White;
                }
            }

            foreach (DataGridViewRow row in dgv2.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Style.BackColor = Color.White;
                }
            }

            for (int i = 0; i < decyzje.Count; i++)
            {
                List <WierszKolumna> najgorszeNaWiersz = new List <WierszKolumna>();
                for (int j = 0; j < stany.Count; j++)
                {
                    if (j == 0)
                    {
                        WierszKolumna tmp = new WierszKolumna();
                        tmp.Wartosc = straty[i, j];
                        tmp.Wiersz  = i;
                        tmp.Kolumna = j;

                        najgorszeNaWiersz.Add(tmp);
                    }
                    else
                    {
                        WierszKolumna tmp2 = new WierszKolumna();
                        tmp2.Wartosc = straty[i, j];
                        tmp2.Wiersz  = i;
                        tmp2.Kolumna = j;

                        if (tmp2.Wartosc == najgorszeNaWiersz.Last().Wartosc)
                        {
                            najgorszeNaWiersz.Add(tmp2);
                        }
                        else if (tmp2.Wartosc > najgorszeNaWiersz.Last().Wartosc)
                        {
                            najgorszeNaWiersz.Clear();
                            najgorszeNaWiersz.Add(tmp2);
                        }
                    }
                }

                foreach (WierszKolumna wk in najgorszeNaWiersz)
                {
                    najgorsze.Add(wk);
                }

                najgorszeNaWiersz.Clear();
            }

            najgorsze.Sort(delegate(WierszKolumna c1, WierszKolumna c2) { return(c1.Wartosc.CompareTo(c2.Wartosc)); });

            foreach (WierszKolumna wk in najgorsze)
            {
                if (wk.Wartosc == najgorsze.First().Wartosc)
                {
                    najlepszeZNajgorszych.Add(wk);
                }
            }

            foreach (WierszKolumna wk in najlepszeZNajgorszych)
            {
                dgv2.Rows[wk.Wiersz].Cells[wk.Kolumna].Style.BackColor = Color.Green;
            }

            foreach (WierszKolumna wk in najlepszeZNajgorszych)
            {
                dgv.Rows[wk.Wiersz + 1].Cells[wk.Kolumna + 1].Style.BackColor = Color.Green;
            }

            WypiszInformacjeONajlepszejDecyzji(kryterium, najlepszeZNajgorszych.First().Wiersz);
        }
コード例 #2
0
 public int CompareTo(WierszKolumna other)
 {
     return(Wartosc.CompareTo(other.Wartosc));
 }
コード例 #3
0
        private void buttonKryteriumHurwicza_Click(object sender, EventArgs e)
        {
            List <WierszKolumna> najlepsze = new List <WierszKolumna>();
            string kryterium = "Hurwicza";

            foreach (DataGridViewRow row in dgv.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Style.BackColor = Color.White;
                }
            }

            foreach (DataGridViewRow row in dgv2.Rows)
            {
                foreach (DataGridViewCell cell in row.Cells)
                {
                    cell.Style.BackColor = Color.White;
                }
            }

            for (int i = 0; i < decyzje.Count; i++)
            {
                for (int j = 0; j < stany.Count; j++)
                {
                    if (j == 0)
                    {
                        WierszKolumna tmp = new WierszKolumna();
                        tmp.Wartosc = wyniki[i, j];
                        tmp.Wiersz  = i;
                        tmp.Kolumna = j;

                        najlepsze.Add(tmp);
                    }
                    else
                    {
                        WierszKolumna tmp2 = new WierszKolumna();
                        tmp2.Wartosc = wyniki[i, j];
                        tmp2.Wiersz  = i;
                        tmp2.Kolumna = j;

                        if (tmp2.Wartosc == najlepsze.Last().Wartosc)
                        {
                            najlepsze.Add(tmp2);
                        }
                        else if (tmp2.Wartosc > najlepsze.Last().Wartosc)
                        {
                            najlepsze.Clear();
                            najlepsze.Add(tmp2);
                        }
                    }
                }
            }

            foreach (WierszKolumna wk in najlepsze)
            {
                dgv.Rows[wk.Wiersz + 1].Cells[wk.Kolumna + 1].Style.BackColor = Color.Green;
            }

            WypiszInformacjeONajlepszejDecyzji(kryterium, najlepsze.First().Wiersz);
        }