public void Flota_DodajBrodZaTriRazličitaBrodaSlažeFlotuOdTriBroda() { Mreža m = new Mreža(10, 10); Flota f = new Flota(); var p1 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(0, 0), 5); Brod b1 = new Brod(p1); f.DodajBrod(b1); var p2 = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(1, 3), 4); Brod b2 = new Brod(p2); f.DodajBrod(b2); var p3 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(4, 5), 3); Brod b3 = new Brod(p3); f.DodajBrod(b3); Assert.AreEqual(3, f.Brodovi.Count()); Assert.IsTrue(f.Brodovi.Contains(b1)); Assert.IsTrue(f.Brodovi.Contains(b2)); Assert.IsTrue(f.Brodovi.Contains(b3)); }
public void KlasičniEliminatorPolja_PoljaKojaTrebaUklonitiOkoBrodaVraćaPoljaBrodaISvaOkolnaPoljaZaBrodUSrediniMreže() { int redaka = 10; int stupaca = 10; int duljinaBroda = 4; Polje početnoPolje = new Polje(3, 2); Orijentacija smjer = Orijentacija.Vertikalno; Mreža m = new Mreža(redaka, stupaca); var poljaBroda = m.DajPoljaZaBrod(smjer, početnoPolje, duljinaBroda); IEliminatorPolja e = new KlasičniEliminatorPolja(); var zaEliminirati = e.PoljaKojaTrebaUklonitiOkoBroda(poljaBroda, redaka, stupaca); Assert.AreEqual(18, zaEliminirati.Count()); foreach (Polje p in poljaBroda) { Assert.IsTrue(zaEliminirati.Contains(p)); } // provjerimo polja u uglovima broda (lijevo-gore, lijevo-dolje, desno-gore i desno-dolje) Assert.IsTrue(zaEliminirati.Contains(new Polje(2, 1))); Assert.IsTrue(zaEliminirati.Contains(new Polje(2, 3))); Assert.IsTrue(zaEliminirati.Contains(new Polje(7, 1))); Assert.IsTrue(zaEliminirati.Contains(new Polje(7, 3))); }
public void Mreža_DajSlobodnaPoljaInicijalnoDajeSvaPoljaUMreži() { Mreža m = new Mreža(10, 10); Assert.AreEqual(100, m.DajSlobodnaPolja().Count()); Assert.IsTrue(m.DajSlobodnaPolja().Contains(new Polje(1, 1))); }
public void Flota_GađajVraćaPotonućeZaZadnjePogođenoPoljePrvogBroda() { Mreža m = new Mreža(10, 10); Flota f = new Flota(); var p1 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(0, 0), 3); Brod b1 = new Brod(p1); f.DodajBrod(b1); var p2 = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(1, 3), 4); Brod b2 = new Brod(p2); f.DodajBrod(b2); var p3 = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(4, 5), 3); Brod b3 = new Brod(p3); f.DodajBrod(b3); Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(0, 1))); Assert.AreEqual(RezultatGađanja.Pogodak, f.Gađaj(new Polje(0, 2))); Assert.AreEqual(RezultatGađanja.Promašaj, f.Gađaj(new Polje(0, 3))); Assert.AreEqual(RezultatGađanja.Potonuće, f.Gađaj(new Polje(0, 0))); }
public void SelektivniSlučajniPucač_GađajVraćaJedinoPoljeKojeSePojavljujeNajvišePuta() { Mreža m = new Mreža(1, 5); SelektivniSlučajniPucač puc = new SelektivniSlučajniPucač(m, 3); Polje p = puc.Gađaj(); Assert.AreEqual(new Polje(0, 2), p); }
public void Mreža_DajPoljaUZadanomSmijeruVraćaListuOd6PoljaLijevoZaPolje1_6() { Mreža m = new Mreža(10, 10); var polja = m.DajPoljaUZadanomSmjeru(1, 6, Smijer.Lijevo); Assert.AreEqual(6, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(1, 5))); }
public void Napipač_ListaPoljaZaVertikalniBrodDuljine4MoraSadržavati16Polja() { Mreža m = new Mreža(5,2); const int duljinaBroda = 4; Napipač n = new Napipač(m, duljinaBroda); Assert.AreEqual(16, n.DajKandidateZaVertikalniBrod().Count()); }
public void Mreža_DajSlobodnaPoljaVraća24PoljaZaMrežu5x5NakonJednogUklonjenogPolja() { Mreža m = new Mreža(5, 5); m.UkloniPolje(new Polje(1, 1)); Assert.AreEqual(24, m.DajSlobodnaPolja().Count()); Assert.IsFalse(m.DajSlobodnaPolja().Contains(new Polje(1, 1))); }
public void Mreža_DajSlobodnaPoljaNakonEliminiranjaJednogPoljaVraćaOstatak() { Mreža m = new Mreža(10, 10); m.EliminirajPolje(new Polje(1, 1)); Assert.AreEqual(99, m.DajSlobodnaPolja().Count()); Assert.IsFalse(m.DajSlobodnaPolja().Contains(new Polje(1, 1))); }
public void Mreža_DajPoljaUZadanomSmjeruVraćaListuOd1PoljaGoreZaPolje1_6() { Mreža m = new Mreža(10, 10); var polja = m.DajPoljaUZadanomSmjeru(1, 6, Smjer.Gore); Assert.AreEqual(1, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(0, 6))); }
public void Mreža_DajPoljaUZadanomSmjeruVraćaListuOd3PoljaDesnoZaPolje1_6() { Mreža m = new Mreža(10, 10); var polja = m.DajPoljaUZadanomSmjeru(1, 6, Smjer.Desno); Assert.AreEqual(3, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(1, 7))); }
public void Napipač_ListaPoljaZaHorizontalniBrodDuljine3MoraSadržavatiPoljaUOdređenomBroju() { Mreža m = new Mreža(1, 7); const int duljinaBroda = 3; Napipač n = new Napipač(m, duljinaBroda); //Assert.AreEqual(15, n.DajKandidateZaHorizontalniBrod().Count()); }
public void Mreža_DajNizSlobodnihPoljaVraćaDvaPoljaGore() { Mreža m = new Mreža(5, 5); var polja = m.DajNizSlobodnihPolja(new Polje(2, 2), Smjer.Gore); Assert.AreEqual(2, polja.Count()); Assert.AreEqual(new Polje(1, 2), polja.First()); Assert.AreEqual(new Polje(0, 2), polja.Last()); }
public void Mreža_DajNizSlobodnihPoljaVraćaDvaPoljaLijevo() { Mreža m = new Mreža(5, 5); var polja = m.DajNizSlobodnihPolja(new Polje(2, 2), Smjer.Lijevo); Assert.AreEqual(2, polja.Count()); Assert.AreEqual(new Polje(2, 1), polja.First()); Assert.AreEqual(new Polje(2, 0), polja.Last()); }
public void Mreža_DajPoljaZaBrodVraćaListuOd2VertikalnaPolja() { Mreža m = new Mreža(10, 10); var polja = m.DajPoljaZaBrod(Orijentacija.Vertikalno, new Polje(3, 6), 2); Assert.AreEqual(2, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(3, 6))); Assert.IsTrue(polja.Contains(new Polje(4, 6))); }
public void LinijskiPucač_GađajVraćaSamoSlobodnoPoljeDesnoOdHorizontalnogNiza() { Mreža m = new Mreža(10, 10); Polje[] polja = { new Polje(2, 3), new Polje(2, 4) }; m.UkloniPolje(2, 2); LinijskiPucač puc = new LinijskiPucač(m, polja, 3); Assert.AreEqual(new Polje(2, 5), puc.Gađaj()); }
public void SustavniPucač_UputiPucanjVraćaDoljenePoljeZaVertikalniSmjerUzRubMreže() { List <Polje> pogođenaPolja = new List <Polje> { new Polje(0, 2), new Polje(1, 2) }; Mreža mreža = new Mreža(10, 10); SustavniPucač p = new SustavniPucač(pogođenaPolja, mreža); Assert.AreEqual(new Polje(2, 2), p.UputiPucanj()); }
public void Mreža_DajSlobodnaPoljaVraća23PoljaZaMrežu5x5NakonDvaUklonjenaPolja() { Mreža m = new Mreža(5, 5); m.UkloniPolje(1, 1); m.UkloniPolje(4, 4); Assert.AreEqual(23, m.DajSlobodnaPolja().Count()); Assert.IsFalse(m.DajSlobodnaPolja().Contains(new Polje(1, 1))); Assert.IsFalse(m.DajSlobodnaPolja().Contains(new Polje(4, 4))); }
public void Mreža_DajPoljaZaBrodVraćaListuOd3HorizontalnaPolja() { Mreža m = new Mreža(10, 10); var polja = m.DajPoljaZaBrod(Orijentacija.Horizontalno, new Polje(3, 6), 3); Assert.AreEqual(3, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(3, 6))); Assert.IsTrue(polja.Contains(new Polje(3, 7))); Assert.IsTrue(polja.Contains(new Polje(3, 8))); }
public void Mreža_DajPoljaUZadanomSmjeruVraćaListuOd6PoljaIspodZaPolje1_6() { Mreža m = new Mreža(10, 10); m.EliminirajPolje(6, 6); var polja = m.DajPoljaUZadanomSmjeru(1, 6, Smjer.Dolje); Assert.AreEqual(4, polja.Count()); Assert.IsTrue(polja.Contains(new Polje(2, 6))); }
public void Napipač_MoraSadržavatiPoljaUOdređenomBroju() { // 0->1 1->2 2->3 1233321 Mreža m = new Mreža(1, 7); const int duljinaBroda = 3; Napipač n = new Napipač(m, duljinaBroda); Assert.AreEqual(15, n.DajKandidateZaHorizontalniBrod().Count()); }
public void LinijskiPucač_GađajVraćaJednoOdDvaPoljaLijevoIliDesnoOdHorizontalnogNiza() { Mreža m = new Mreža(10, 10); Polje[] polja = { new Polje(2, 3), new Polje(2, 4) }; LinijskiPucač puc = new LinijskiPucač(m, polja, 3); Polje p = puc.Gađaj(); Polje[] kandidati = { new Polje(2, 2), new Polje(2, 5) }; CollectionAssert.Contains(kandidati, p); }
public void LinijskiPucač_GađajVraćaJednoOdDvaPoljaGoreIliDoljeOdVertikalnogNiza() { Mreža m = new Mreža(10, 10); Polje[] polja = { new Polje(2, 3), new Polje(3, 3) }; LinijskiPucač puc = new LinijskiPucač(m, polja, 3); Polje p = puc.Gađaj(); Polje[] kandidati = { new Polje(1, 3), new Polje(4, 3) }; CollectionAssert.Contains(kandidati, p); }
public void KružniPucač_GađajDajePoljaLijevoIIznadZaPogođenoPoljeUDonjemDesnomKutu() { Mreža mreža = new Mreža(5, 5); KružniPucač puc = new KružniPucač(mreža, new Polje(4, 4), 3); Polje gađano = puc.Gađaj(); List <Polje> kandidati = new List <Polje> { new Polje(3, 4), new Polje(4, 3) }; Assert.IsTrue(kandidati.Contains(gađano)); }
public void KružniPucač_GađajDajePoljaDesnoIIspodZaPogođenoPoljeUGornjemLijevomKutu() { Mreža mreža = new Mreža(5, 5); KružniPucač puc = new KružniPucač(mreža, new Polje(0, 0), 3); Polje gađano = puc.Gađaj(); List <Polje> kandidati = new List <Polje> { new Polje(0, 1), new Polje(1, 0) }; Assert.IsTrue(kandidati.Contains(gađano)); }
public void KružniPucač_GađajDajeJednoOdPoljaDesnoIliLijevo() { Mreža mreža = new Mreža(1, 5); KružniPucač puc = new KružniPucač(mreža, new Polje(0, 2), 3); Polje gađano = puc.Gađaj(); List <Polje> kandidati = new List <Polje> { new Polje(0, 1), new Polje(0, 3) }; Assert.IsTrue(kandidati.Contains(gađano)); }
public void KružniPucač_GađajDajeJednoOdOkolnihPolja() { Mreža mreža = new Mreža(5, 5); KružniPucač puc = new KružniPucač(mreža, new Polje(2, 2), 3); Polje gađano = puc.Gađaj(); List <Polje> kandidati = new List <Polje> { new Polje(1, 2), new Polje(2, 1), new Polje(3, 2), new Polje(2, 3) }; Assert.IsTrue(kandidati.Contains(gađano)); }
public void KružniPucač_UpućujePucanjUJednoOd2PoljaOkoPoljaULijevomDonjemKutu() { Mreža m = new Mreža(10, 10); Polje prvoPogođeno = new Polje(9, 0); KružniPucač pucač = new KružniPucač(prvoPogođeno, m); List <Polje> kandidati = new List <Polje> { new Polje(9, 1), new Polje(8, 0) }; Assert.IsTrue(kandidati.Contains(pucač.UputiPucanj())); }
public void LinijskiPucač_GađajVraćaSamoSlobodnoPoljeDoljeOdVertikalnogNiza() { Mreža m = new Mreža(10, 10); Polje[] polja = { new Polje(2, 3), new Polje(3, 3) }; m.UkloniPolje(1, 3); LinijskiPucač puc = new LinijskiPucač(m, polja, 3); Polje p = puc.Gađaj(); Assert.AreEqual(new Polje(4, 3), p); }
public void KružniPucač_UpućujePucanjUJednoOd4PoljaOkoPoljaUSredini() { Mreža m = new Mreža(10, 10); Polje prvoPogođeno = new Polje(5, 5); KružniPucač pucač = new KružniPucač(prvoPogođeno, m); List <Polje> kandidati = new List <Polje> { new Polje(4, 5), new Polje(6, 5), new Polje(5, 4), new Polje(5, 6) }; Assert.IsTrue(kandidati.Contains(pucač.UputiPucanj())); }