Ejemplo n.º 1
0
        private void btnSimplex_Click(object sender, EventArgs e)
        {
            try
            {
                simplexForma = simplexMetoda();

                if (simplexForma == null)
                {
                    SedloDominacija provjeraSedla = new SedloDominacija(uneseniDobiciGubitci);
                    provjeraSedla.ProvjeriSedlo();

                    if (kontradiktornaIgraPocetakSedlo == true)
                    {
                        MessageBox.Show("Unesena igra je kontradiktorna, a takve igre se ne odigravaju!");
                    }

                    else if (nerijesenRezultatPocetakSedlo == true || protuprirodnaIgraPocetakSedlo == true)
                    {
                        MatricnaIgra matricnaIgra = new MatricnaIgra(provjeraSedla.uneseniPodaci);
                        FormaSedla   formaSedla   = new FormaSedla(provjeraSedla.maximumiStupca, provjeraSedla.minimumiReda, matricnaIgra.IspisMatricneIgre());
                        formaSedla.Show();
                    }

                    else if (nerijesenRezultatInternSedlo == true || protuprirodnaIgraInternSedlo == true)
                    {
                        ProtuprirodnaKontradiktornaIgra sedloProtKont = new ProtuprirodnaKontradiktornaIgra(uneseniDobiciGubitci);
                        sedloProtKont.ProvjeriProtuprirodnost();
                        SedloDominacija sedloIntern = new SedloDominacija(sedloProtKont.uneseniPodaci);
                        sedloIntern.ProvjeriSedlo();

                        MatricnaIgra matricnaIgra = new MatricnaIgra(sedloProtKont.uneseniPodaci);
                        FormaSedla   formaSedla   = new FormaSedla(sedloIntern.maximumiStupca, sedloIntern.minimumiReda, matricnaIgra.IspisMatricneIgre());
                        formaSedla.Show();
                    }

                    else
                    {
                        provjeraSedla.ukloniDominantneStrategije();
                        MatricnaIgra matricnaIgra = new MatricnaIgra(provjeraSedla.uneseniPodaci);
                        FormaSedla   formaSedla   = new FormaSedla(provjeraSedla.maximumiStupca, provjeraSedla.minimumiReda, matricnaIgra.IspisMatricneIgre());
                        formaSedla.Show();
                    }
                }
                else
                {
                    simplexForma.Show();
                    ispisTablicaIteracijaToolStripMenuItem.Enabled = true;
                    ispisPostupkaIzračunaToolStripMenuItem.Enabled = true;
                }
            }

            catch
            {
                MessageBox.Show("Unesite gubitke i dobitke strategija pojedinih igrača!", "Pažnja", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Ejemplo n.º 2
0
        private SimplexForma simplexMetoda()
        {
            nerijesenRezultatPocetakSedlo  = false;
            protuprirodnaIgraPocetakSedlo  = false;
            kontradiktornaIgraPocetakSedlo = false;

            nerijesenRezultatInternSedlo  = false;
            protuprirodnaIgraInternSedlo  = false;
            kontradiktornaIgraInternSedlo = false;

            if (rbIgracA.Checked == true)
            {
                igrac = 1;
                uneseniDobiciGubitci = new SpremanjeUnosa(dgvMatrica);

                //provjera postojanja sedla
                SedloDominacija provjeraSedla = new SedloDominacija(uneseniDobiciGubitci);

                Tuple <bool, int, int> postojanjeSedla = provjeraSedla.ProvjeriSedlo();
                bool postojiSedlo = postojanjeSedla.Item1;
                int  rezultatIgre = postojanjeSedla.Item2;

                if (postojiSedlo)
                {
                    ProtuprirodnaKontradiktornaIgra protuprirodnostSedla = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));
                    int vrstaIgre = protuprirodnostSedla.ProvjeriProtuprirodnost();

                    if (vrstaIgre == 1)
                    {
                        protuprirodnaIgraPocetakSedlo = true;
                    }
                    else if (vrstaIgre == 2)
                    {
                        kontradiktornaIgraPocetakSedlo = true;
                    }

                    if (kontradiktornaIgraPocetakSedlo == false)
                    {
                        if (rezultatIgre > 0)
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " u korist igrača A.", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else if (rezultatIgre == 0)
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " - neriješeno (pravedna igra).", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            nerijesenRezultatPocetakSedlo = true;
                        }
                        else
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " u korist igrača B.", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    return(null);
                }
                else
                {
                    ProtuprirodnaKontradiktornaIgra protuprirodnost = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));

                    int vrstaIgre = protuprirodnost.ProvjeriProtuprirodnost();

                    if (vrstaIgre == 0)
                    {
                        provjeraSedla.ukloniDominantneStrategije(); //provjera dal postoje dominantnih i duplikatnih strategija te ih eliminira

                        Tuple <bool, int, int> postojanjeSedlaIntern = provjeraSedla.ProvjeriSedlo();
                        bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                        int  rezultatIgreIntern = postojanjeSedlaIntern.Item2;

                        if (postojiSedloIntern)
                        {
                            MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(null);
                        }
                        else
                        {
                            //simplex metoda
                            SimplexKalkulatorA smplxCalcMI = new SimplexKalkulatorA(provjeraSedla.uneseniPodaci, postojanjeSedlaIntern.Item3); //šalju se strategije bez onih dominantnih
                            return(new SimplexForma(smplxCalcMI.SimplexTabliceRazlomci, smplxCalcMI.Zakljucak, smplxCalcMI.indexiVodecihStupaca, smplxCalcMI.indexiVodecihRedaka, smplxCalcMI.brojRedaka, smplxCalcMI.brojStupaca, smplxCalcMI.postupakIzracuna));
                        }
                    }
                    else if (vrstaIgre == 1)
                    {
                        //protuprirodnaIgra = true;
                        MessageBox.Show("Unesena je protuprirodna igra!\nNe uključujem duplikatne strategije.");

                        provjeraSedla.ukloniDuplikatneStrategije();
                        protuprirodnost.ukloniDuplikatneStrategije();

                        SedloDominacija sedloIntern = new SedloDominacija(protuprirodnost.uneseniPodaci);

                        Tuple <bool, int, int> postojanjeSedlaIntern = sedloIntern.ProvjeriSedlo();
                        bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                        int  rezultatIgreIntern = postojanjeSedlaIntern.Item2;

                        if (postojiSedloIntern)
                        {
                            MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            protuprirodnaIgraInternSedlo = true;
                            return(null);
                        }
                        else
                        {
                            SimplexKalkulatorA smplxCalcPI = new SimplexKalkulatorA(protuprirodnost.uneseniPodaci, provjeraSedla.ProvjeriSedlo().Item3);
                            return(new SimplexForma(smplxCalcPI.SimplexTabliceRazlomci, smplxCalcPI.Zakljucak, smplxCalcPI.indexiVodecihStupaca, smplxCalcPI.indexiVodecihRedaka, smplxCalcPI.brojRedaka, smplxCalcPI.brojStupaca, smplxCalcPI.postupakIzracuna));
                        }
                    }
                    else//kontradiktorna
                    {
                        //kontradiktornaIgra = true;
                        MessageBox.Show("Unesena je kontradiktorna igra! Takva igra se ne odigrava!"); //kontradiktorna nastaje nakon uklanjanja strategija svođenjem jednog igrača na samo 1 strategiju
                                                                                                       //provjeraSedla.ukloniDuplikatneStrategije();
                        return(null);

                        /*
                         * SedloDominacija sedloIntern = new SedloDominacija(protuprirodnost.uneseniPodaci);
                         *
                         * Tuple<bool, int, int> postojanjeSedlaIntern = sedloIntern.ProvjeriSedlo();
                         * bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                         * int rezultatIgreIntern = postojanjeSedlaIntern.Item2;
                         *
                         * if (postojiSedloIntern)
                         * {
                         *  MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         *  kontradiktornaIgraInternSedlo = true;
                         *  return null;
                         * }
                         * else
                         * {
                         *  SimplexKalkulatorA smplxCalcKI = new SimplexKalkulatorA(protuprirodnost.uneseniPodaci, provjeraSedla.ProvjeriSedlo().Item3);//protuprirodnost -> provjeraSedla.uneseniPodaci
                         *  return new SimplexForma(smplxCalcKI.SimplexTabliceRazlomci, smplxCalcKI.Zakljucak, smplxCalcKI.indexiVodecihStupaca, smplxCalcKI.indexiVodecihRedaka, smplxCalcKI.brojRedaka, smplxCalcKI.brojStupaca, smplxCalcKI.postupakIzracuna);
                         * }
                         */
                    }
                }
            }

            else //igracB.Check == true;
            {
                igrac = 2;
                uneseniDobiciGubitci = new SpremanjeUnosa(dgvMatrica);

                //provjera postojanja sedla
                SedloDominacija provjeraSedla = new SedloDominacija(uneseniDobiciGubitci);

                Tuple <bool, int, int> postojanjeSedla = provjeraSedla.ProvjeriSedlo();
                bool postojiSedlo = postojanjeSedla.Item1;
                int  rezultatIgre = postojanjeSedla.Item2;

                if (postojiSedlo)
                {
                    ProtuprirodnaKontradiktornaIgra protuprirodnostSedla = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));
                    int vrstaIgre = protuprirodnostSedla.ProvjeriProtuprirodnost();

                    if (vrstaIgre == 1)
                    {
                        protuprirodnaIgraPocetakSedlo = true;
                    }
                    else if (vrstaIgre == 2)
                    {
                        kontradiktornaIgraPocetakSedlo = true;
                    }
                    if (kontradiktornaIgraPocetakSedlo == false)
                    {
                        if (rezultatIgre > 0)
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " u korist igrača A.", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else if (rezultatIgre == 0)
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " - neriješeno.", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            nerijesenRezultatPocetakSedlo = true;
                        }
                        else
                        {
                            MessageBox.Show("Postoji sedlo!\nVrijednost ove igre iznosi " + rezultatIgre + " u korist igrača B.", "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }

                    return(null);
                }
                else
                {
                    ProtuprirodnaKontradiktornaIgra protuprirodnost = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));
                    int vrstaIgre = protuprirodnost.ProvjeriProtuprirodnost();
                    if (vrstaIgre == 0)
                    {
                        provjeraSedla.ukloniDominantneStrategije();                                   //provjera dal postoje dominantne i duplikatne strategije te ih eliminira

                        Tuple <bool, int, int> postojanjeSedlaIntern = provjeraSedla.ProvjeriSedlo(); //provjera sedla nakon uklanjanja strategija
                        bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                        int  rezultatIgreIntern = postojanjeSedlaIntern.Item2;

                        if (postojiSedloIntern)
                        {
                            MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(null);
                        }
                        else
                        {
                            //simplex metoda
                            SimplexKalkulatorB smplxCalcMI = new SimplexKalkulatorB(provjeraSedla.uneseniPodaci, postojanjeSedlaIntern.Item3); //šalju se strategije bez onih dominantnih i duplikatnih
                            return(new SimplexForma(smplxCalcMI.SimplexTabliceRazlomci, smplxCalcMI.Zakljucak, smplxCalcMI.indexiVodecihStupaca, smplxCalcMI.indexiVodecihRedaka, smplxCalcMI.brojRedaka, smplxCalcMI.brojStupaca, smplxCalcMI.postupakIzracuna));
                        }
                    }
                    else if (vrstaIgre == 1)
                    {
                        //protuprirodnaIgra = true;
                        MessageBox.Show("Unesena je protuprirodna igra!\nNe uključujem duplikatne strategije.");

                        provjeraSedla.ukloniDuplikatneStrategije();
                        protuprirodnost.ukloniDuplikatneStrategije();

                        SedloDominacija sedloIntern = new SedloDominacija(protuprirodnost.uneseniPodaci);

                        Tuple <bool, int, int> postojanjeSedlaIntern = sedloIntern.ProvjeriSedlo();
                        bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                        int  rezultatIgreIntern = postojanjeSedlaIntern.Item2;

                        if (postojiSedloIntern)
                        {
                            MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            protuprirodnaIgraInternSedlo = true;
                            return(null);
                        }
                        else
                        {
                            SimplexKalkulatorB smplxCalcPI = new SimplexKalkulatorB(protuprirodnost.uneseniPodaci, provjeraSedla.ProvjeriSedlo().Item3);
                            return(new SimplexForma(smplxCalcPI.SimplexTabliceRazlomci, smplxCalcPI.Zakljucak, smplxCalcPI.indexiVodecihStupaca, smplxCalcPI.indexiVodecihRedaka, smplxCalcPI.brojRedaka, smplxCalcPI.brojStupaca, smplxCalcPI.postupakIzracuna));
                        }
                    }
                    else//kontradiktorna
                    {
                        //kontradiktornaIgra = true;
                        MessageBox.Show("Unesena je kontradiktorna igra! Takva igra se ne odigrava!"); //kontradiktorna nastaje nakon uklanjanja strategija svođenjem jednog igrača na samo 1 strategiju
                                                                                                       //provjeraSedla.ukloniDuplikatneStrategije();
                        return(null);

                        /*                                                                       //provjeraSedla.ukloniDuplikatneStrategije();
                         * SedloDominacija sedloIntern = new SedloDominacija(protuprirodnost.uneseniPodaci);
                         *
                         * Tuple<bool, int, int> postojanjeSedlaIntern = sedloIntern.ProvjeriSedlo();
                         * bool postojiSedloIntern = postojanjeSedlaIntern.Item1;
                         * int rezultatIgreIntern = postojanjeSedlaIntern.Item2;
                         *
                         * if (postojiSedloIntern)
                         * {
                         *  MessageBox.Show("Postoji sedlo nakon uklanjanja strategija!\nVrijednost ove igre iznosi: " + rezultatIgreIntern, "Kraj igre!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         *  kontradiktornaIgraInternSedlo = true;
                         *  return null;
                         * }
                         * else
                         * {
                         *  SimplexKalkulatorB smplxCalcKI = new SimplexKalkulatorB(protuprirodnost.uneseniPodaci, provjeraSedla.ProvjeriSedlo().Item3);
                         *  return new SimplexForma(smplxCalcKI.SimplexTabliceRazlomci, smplxCalcKI.Zakljucak, smplxCalcKI.indexiVodecihStupaca, smplxCalcKI.indexiVodecihRedaka, smplxCalcKI.brojRedaka, smplxCalcKI.brojStupaca, smplxCalcKI.postupakIzracuna);
                         * }
                         */
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private string stvoriModelProblema()
        {
            if (rbIgracA.Checked == true)
            {
                uneseniDobiciGubitci = new SpremanjeUnosa(dgvMatrica);

                SedloDominacija provjeraDominacije = new SedloDominacija(uneseniDobiciGubitci);

                ProtuprirodnaKontradiktornaIgra protuprirodnost = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));

                int vrstaIgre = protuprirodnost.ProvjeriProtuprirodnost();

                if (vrstaIgre == 0)
                {
                    provjeraDominacije.ukloniDominantneStrategije();
                    MatricnaIgra matricnaIgra = new MatricnaIgra(provjeraDominacije.uneseniPodaci);

                    string uklonjeneStrategije = "Unesena je miješana matrična igra." + Environment.NewLine;

                    uklonjeneStrategije += provjeraDominacije.IspisUklonjenihStrategijaIgracaA();
                    uklonjeneStrategije += matricnaIgra.IspisMatricneIgre() + Environment.NewLine + Environment.NewLine + "Kod izrade modela ne uključujem dominantne ili duplikatne strategije.";    //prikaz matricne igre

                    IzgradnjaModelaA modelZadatkaA = new IzgradnjaModelaA(provjeraDominacije.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + Environment.NewLine + modelZadatkaA.DohvatiZapisModela());
                }
                else if (vrstaIgre == 1)     // izračun po 3 kriterija
                {
                    provjeraDominacije.ukloniDuplikatneStrategije();
                    if (!protuprirodnost.ProvjeraSvihJednakihIsplata())
                    {
                        protuprirodnost.ukloniDuplikatneStrategije();
                    }

                    //protuprirodnost.ukloniDuplikatneStrategije();

                    MatricnaIgra matricnaIgra = new MatricnaIgra(protuprirodnost.uneseniPodaci);

                    KriterijiProtuprirodnosti kriteriji = new KriterijiProtuprirodnosti(protuprirodnost.uneseniPodaci, 1);     //rjesavanje po kriterijima

                    string uklonjeneStrategije = "Unesena igra je protuprirodna ili postaje protuprirodna igra nakon uklanjanja strategija:" + protuprirodnost.IspisUklonjenihStrategijaIgraca() + matricnaIgra.IspisMatricneIgre() + Environment.NewLine + kriteriji.IspisiVrijednostiKriterija() + Environment.NewLine + "Kod izrade modela ne uključujem dominantne ili duplikatne strategije." + Environment.NewLine;

                    /* NEPOTREBNO- ponovni ispis uklonjenih strategija i matrice
                     * if(protuprirodnost.IspisUklonjenihStrategijaIgraca() != string.Empty)
                     * {
                     *  //uklonjeneStrategije += protuprirodnost.IspisUklonjenihStrategijaIgraca();
                     *  //matricnaIgra = new MatricnaIgra(protuprirodnost.uneseniPodaci);
                     *  //uklonjeneStrategije += matricnaIgra.IspisMatricneIgre();
                     * }
                     */

                    IzgradnjaModelaA modelZadatkaA = new IzgradnjaModelaA(protuprirodnost.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + modelZadatkaA.DohvatiZapisModela());
                }
                else
                {
                    //provjeraSedla.ukloniDuplikatneStrategije();

                    MatricnaIgra matricnaIgra = new MatricnaIgra(protuprirodnost.uneseniPodaci);

                    string uklonjeneStrategije = "Unesena igra je kontradiktorna ili postaje kontradiktorna igra nakon uklanjanja strategija:" + protuprirodnost.IspisUklonjenihStrategijaIgraca() + matricnaIgra.IspisMatricneIgre() + Environment.NewLine + Environment.NewLine + "Kod izrade modela ne uklanjam strategije. " + Environment.NewLine;
                    uklonjeneStrategije += provjeraDominacije.IspisUklonjenihDuplikatnihA();

                    matricnaIgra         = new MatricnaIgra(provjeraDominacije.uneseniPodaci);
                    uklonjeneStrategije += matricnaIgra.IspisMatricneIgre();

                    IzgradnjaModelaA modelZadatkaA = new IzgradnjaModelaA(provjeraDominacije.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + Environment.NewLine + modelZadatkaA.DohvatiZapisModela());
                }
            }
            else     //igracB.Check == true;
            {
                uneseniDobiciGubitci = new SpremanjeUnosa(dgvMatrica);

                SedloDominacija provjeraDominacije = new SedloDominacija(uneseniDobiciGubitci);

                ProtuprirodnaKontradiktornaIgra protuprirodnost = new ProtuprirodnaKontradiktornaIgra(new SpremanjeUnosa(dgvMatrica));

                int vrstaIgre = protuprirodnost.ProvjeriProtuprirodnost();

                if (vrstaIgre == 0)
                {
                    provjeraDominacije.ukloniDominantneStrategije();
                    MatricnaIgra matricnaIgra = new MatricnaIgra(provjeraDominacije.uneseniPodaci);

                    string uklonjeneStrategije = "Unesena je miješana matrična igra." + Environment.NewLine;

                    uklonjeneStrategije += provjeraDominacije.IspisUklonjenihStrategijaIgracaB();
                    uklonjeneStrategije += matricnaIgra.IspisMatricneIgre() + Environment.NewLine + Environment.NewLine + "Kod izrade modela ne uključujem dominantne ili duplikatne strategije.";

                    IzgradnjaModelaB modelZadatkaB = new IzgradnjaModelaB(provjeraDominacije.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + Environment.NewLine + modelZadatkaB.DohvatiZapisModela());
                }
                else if (vrstaIgre == 1)     // izračun po 3 kriterija
                {
                    provjeraDominacije.ukloniDuplikatneStrategije();

                    if (!protuprirodnost.ProvjeraSvihJednakihIsplata())
                    {
                        protuprirodnost.ukloniDuplikatneStrategije();
                    }

                    //protuprirodnost.ukloniDuplikatneStrategije();

                    MatricnaIgra matricnaIgra           = new MatricnaIgra(protuprirodnost.uneseniPodaci);
                    KriterijiProtuprirodnosti kriteriji = new KriterijiProtuprirodnosti(protuprirodnost.uneseniPodaci, 2);     //rjesavanje po kriterijima

                    string uklonjeneStrategije = "Unesena igra je protuprirodna ili postaje protuprirodna igra nakon uklanjanja strategija:" + protuprirodnost.IspisUklonjenihStrategijaIgraca() + matricnaIgra.IspisMatricneIgre() + Environment.NewLine + kriteriji.IspisiVrijednostiKriterija() + Environment.NewLine + "Kod izrade modela ne uključujem dominantne ili duplikatne strategije." + Environment.NewLine;

                    /* NEPOTREBNO
                     * if (protuprirodnost.IspisUklonjenihStrategijaIgraca() != string.Empty)
                     * {
                     *  uklonjeneStrategije += protuprirodnost.IspisUklonjenihStrategijaIgraca();
                     *  //matricnaIgra = new MatricnaIgra(protuprirodnost.uneseniPodaci);
                     *  //uklonjeneStrategije += matricnaIgra.IspisMatricneIgre();
                     * }
                     */

                    IzgradnjaModelaB modelZadatkaB = new IzgradnjaModelaB(protuprirodnost.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + modelZadatkaB.DohvatiZapisModela());
                }
                else
                {
                    //provjeraSedla.ukloniDuplikatneStrategije();

                    MatricnaIgra matricnaIgra = new MatricnaIgra(protuprirodnost.uneseniPodaci);

                    string uklonjeneStrategije = "Unesena igra je kontradiktorna ili postaje kontradiktorna igra nakon uklanjanja strategija:" + protuprirodnost.IspisUklonjenihStrategijaIgraca() + matricnaIgra.IspisMatricneIgre() + Environment.NewLine + Environment.NewLine + "Kod izrade modela ne uklanjam strategije. " + Environment.NewLine;
                    uklonjeneStrategije += provjeraDominacije.IspisUklonjenihDuplikatnihB();

                    matricnaIgra         = new MatricnaIgra(provjeraDominacije.uneseniPodaci);
                    uklonjeneStrategije += matricnaIgra.IspisMatricneIgre();

                    IzgradnjaModelaB modelZadatkaB = new IzgradnjaModelaB(provjeraDominacije.uneseniPodaci, provjeraDominacije.ProvjeriSedlo().Item3);

                    if (String.IsNullOrEmpty(uklonjeneStrategije))
                    {
                        uklonjeneStrategije = "Ne postoji niti jedna dominantna ili duplikatna strategija!";
                    }

                    return(uklonjeneStrategije + Environment.NewLine + Environment.NewLine + modelZadatkaB.DohvatiZapisModela());
                }
            }
        }