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đ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đ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đ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 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()));
        }
        public void KružniPucač_GađajDajeJedinoOkolnoPoljeKojeNijeEliminirano()
        {
            Mreža mreža = new Mreža(5, 5);

            mreža.UkloniPolje(1, 2);
            mreža.UkloniPolje(3, 2);
            mreža.UkloniPolje(2, 1);
            KružniPucač puc    = new KružniPucač(mreža, new Polje(2, 2), 3);
            Polje       gađano = puc.Gađaj();

            Assert.AreEqual(new Polje(2, 3), gađano);
        }
        public void KružniPucač_GađajDajeOkolnaPoljaKojaNisuEliminirana()
        {
            Mreža mreža = new Mreža(5, 5);

            mreža.UkloniPolje(1, 2);
            mreža.UkloniPolje(3, 2);
            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(2, 1), new Polje(2, 3)
            };

            Assert.IsTrue(kandidati.Contains(gađano));
        }