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