public void AI_NakonPogotkaIPromasajaTaktikaJeTrazenjeSmjera() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 2, 3, 3, 4 }); Polje p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.promasaj); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak)); }
public void AI_NakonDvaPogotkaTaktikaJeUnistavanje() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 2, 3, 3, 4 }); Polje p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaUnistavanjeRazmak)); }
public void AI_NakonMukotrpnogPotapanjaTaktikaJeNapipavanje() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 2, 3, 3, 4 }); Polje p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.potopljen); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak)); }
public void AI_MjesovitaSimulacijaIspravnoDajeTaktike() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 2, 3, 3, 4 }); Polje p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak)); ai.ObradiPogodak(rezultatGadjanja.promasaj); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak)); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak)); ai.ObradiPogodak(rezultatGadjanja.promasaj); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak)); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaUnistavanjeRazmak)); ai.ObradiPogodak(rezultatGadjanja.promasaj); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak)); ai.ObradiPogodak(rezultatGadjanja.pogodak); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaUnistavanjeRazmak)); ai.ObradiPogodak(rezultatGadjanja.potopljen); p = ai.Gadjaj(); Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak)); }
public void AIRazmak_GadjajNakonDvaPogotkaNastavljaSustavnoGadjatiUIstomSmjeru() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 4 }); ai.Gadjaj(); Polje prvoPolje = ai.zap.gadjanoPolje; ai.ObradiPogodak(rezultatGadjanja.pogodak); ai.Gadjaj(); Polje drugoPolje = ai.zap.gadjanoPolje; ai.ObradiPogodak(rezultatGadjanja.pogodak); ai.Gadjaj(); Polje trecePolje = ai.zap.gadjanoPolje; Assert.IsTrue((prvoPolje.Redak == trecePolje.Redak && Math.Abs(prvoPolje.Stupac - trecePolje.Stupac) == 2) || (prvoPolje.Stupac == trecePolje.Stupac && Math.Abs(prvoPolje.Redak - trecePolje.Redak) == 2)); }
public void AI_ObradiPogodakIspravnoRadiZaPromasaj() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 1, 2, 3, 3, 4 }); ai.Gadjaj(); ai.ObradiPogodak(rezultatGadjanja.promasaj); Assert.IsTrue(ai.zap.trenutnaMeta.Count == 0); Assert.IsFalse(ai.Mreza.polja.Contains(ai.zap.gadjanoPolje)); }
public void AIRazmak_GadjajNakonPogotkaIPromasajaJosUvijekDajePoljeDoGadjanogPolja() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 4 }); ai.Gadjaj(); Polje prvoPolje = ai.zap.gadjanoPolje; ai.ObradiPogodak(rezultatGadjanja.pogodak); ai.Gadjaj(); Polje drugoPolje = ai.zap.gadjanoPolje; ai.ObradiPogodak(rezultatGadjanja.promasaj); ai.Gadjaj(); Polje trecePolje = ai.zap.gadjanoPolje; Assert.IsTrue((prvoPolje.Redak == trecePolje.Redak && Math.Abs(prvoPolje.Stupac - trecePolje.Stupac) == 1) || (prvoPolje.Stupac == trecePolje.Stupac && Math.Abs(prvoPolje.Redak - trecePolje.Redak) == 1)); Assert.AreNotEqual(prvoPolje, drugoPolje); }
public void AIRazmak_GadjajNakonPogotkaDajePoljeDoGadjanogPolja() { AITemplate ai = AIFactory.DajAI(); ai.Initialize(10, 10, new int[] { 4 }); ai.Gadjaj(); Polje prvoPolje = ai.zap.gadjanoPolje; ai.ObradiPogodak(rezultatGadjanja.pogodak); ai.Gadjaj(); Polje drugoPolje = ai.zap.gadjanoPolje; Assert.IsTrue((prvoPolje.Redak == drugoPolje.Redak && Math.Abs(prvoPolje.Stupac - drugoPolje.Stupac) == 1) || (prvoPolje.Stupac == drugoPolje.Stupac && Math.Abs(prvoPolje.Redak - drugoPolje.Redak) == 1)); }
public void Igraj() { rezultatGadjanja rez = rezultatGadjanja.nepoznato; while (true) { // za pocetak mi igramo prvi, dok ne smislimo bolji algoritam Polje p = ai.Gadjaj(); rez = (rezultatGadjanja)protivnik.JaviRezultat(new Tuple <int, int>(p.Redak, p.Stupac)); if (rez == rezultatGadjanja.PORAZ) { this.tbDnevnik.Text = "Mi smo pobjedili!"; break; } this.Invoke((MethodInvoker) delegate { tbDnevnik.AppendText("(" + p.Redak + ", " + p.Stupac + "): " + rez.ToString() + "\n"); }); Brod b = new Brod(ai.zap.trenutnaMeta); ai.ObradiPogodak(rez); protivnikFlotaGUI.DodajPolje(p, rez); if (rez == rezultatGadjanja.potopljen) { protivnikFlotaGUI.PotopiBrod(b); } this.Invoke((MethodInvoker) delegate { protivnikFlotaGUI.Invalidate(); }); // sada igra protivnik Tuple <int, int> koord = protivnik.Gadjaj(); p = new Polje(koord.Item1, koord.Item2); rez = flota.ObradiPogodak(p.Redak, p.Stupac); if (rez == rezultatGadjanja.PORAZ) { this.tbDnevnik.Text = "Protivnik je pobjedio!"; break; } this.Invoke((MethodInvoker) delegate { tbDnevnik.AppendText("@@ (" + p.Redak + ", " + p.Stupac + "): " + rez.ToString() + "\n"); }); protivnik.ObradiPogodak((OOMPotapanje.mojRezultatGadjanja)rez); this.Invoke((MethodInvoker) delegate { mojaFlotaGUI.ZadajFlotu(flota); }); // spavaj da ne bude prebrzo Thread.Sleep(500); } }