Пример #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);
            }
        }
Пример #2
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());
                }
            }
        }