Пример #1
0
        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));
        }
Пример #2
0
        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)));
        }
Пример #3
0
        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)));
        }
Пример #4
0
        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);
        }
Пример #6
0
        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)));
        }
Пример #7
0
        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());

        }
Пример #8
0
        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)));
        }
Пример #9
0
        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)));
        }
Пример #10
0
        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)));
        }
Пример #11
0
        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)));
        }
Пример #12
0
        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());

        }
Пример #13
0
        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());
        }
Пример #14
0
        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());
        }
Пример #15
0
        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());
        }
Пример #18
0
        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)));
        }
Пример #19
0
        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)));
        }
Пример #20
0
        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)));
        }
Пример #21
0
        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()));
        }