コード例 #1
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());
                }
            }
        }