コード例 #1
0
        public void Brodograditelj_PoljaKojaTrebaEliminiratiOkoBrodaVraćaPoljaBrodaIPoljaLijevoIIznadZaBrodUDonjemLijevomKutuMreže()
        {
            int   redaka       = 10;
            int   stupaca      = 10;
            int   duljinaBroda = 4;
            Polje početnoPolje = new Polje(redaka - duljinaBroda, 0);
            Smjer smjer        = Smjer.Vertikalno;

            Brodograditelj b          = new Brodograditelj();
            var            poljaBroda = b.DajPoljaZaBrod(smjer, početnoPolje, duljinaBroda);

            var zaEliminirati = b.PoljaKojaTrebaEliminiratiOkoBroda(poljaBroda, redaka, stupaca);

            Assert.AreEqual(10, zaEliminirati.Count());
            foreach (Polje p in poljaBroda)
            {
                Assert.IsTrue(zaEliminirati.Contains(p));
            }
            // provjerimo 3 krajnja polja uz brod (iznad, iznad-desno, desno dolje)
            Assert.IsTrue(zaEliminirati.Contains(new Polje(početnoPolje.Redak - 1, 0)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(početnoPolje.Redak - 1, 1)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(redaka - 1, 1)));
        }
コード例 #2
0
        public void Brodograditelj_PoljaKojaTrebaEliminiratiOkoBrodaVraćaPoljaBrodaIPoljaIspodIDesnoZaBrodUGornjemLijevomKutuMreže()
        {
            int   redaka       = 10;
            int   stupaca      = 10;
            int   duljinaBroda = 4;
            Polje početnoPolje = new Polje(0, 0);
            Smjer smjer        = Smjer.Horizontalno;

            Brodograditelj b          = new Brodograditelj();
            var            poljaBroda = b.DajPoljaZaBrod(smjer, početnoPolje, duljinaBroda);

            var zaEliminirati = b.PoljaKojaTrebaEliminiratiOkoBroda(poljaBroda, redaka, stupaca);

            Assert.AreEqual(10, zaEliminirati.Count());
            foreach (Polje p in poljaBroda)
            {
                Assert.IsTrue(zaEliminirati.Contains(p));
            }
            // provjerimo 3 krajnja polja uz brod (ispod-lijevo, ispod-desno, desno)
            Assert.IsTrue(zaEliminirati.Contains(new Polje(1, 0)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(1, 4)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(0, 4)));
        }
コード例 #3
0
        public void Brodograditelj_PoljaKojaTrebaEliminiratiOkoBrodaVraćaPoljaBrodaIPoljaLijevoIIspodZaBrodUGornjemDesnomKutuMreže()
        {
            int   redaka       = 10;
            int   stupaca      = 10;
            int   duljinaBroda = 4;
            Polje početnoPolje = new Polje(0, stupaca - 1);
            Smjer smjer        = Smjer.Vertikalno;

            Brodograditelj b          = new Brodograditelj();
            var            poljaBroda = b.DajPoljaZaBrod(smjer, početnoPolje, duljinaBroda);

            var zaEliminirati = b.PoljaKojaTrebaEliminiratiOkoBroda(poljaBroda, redaka, stupaca);

            Assert.AreEqual(10, zaEliminirati.Count());
            foreach (Polje p in poljaBroda)
            {
                Assert.IsTrue(zaEliminirati.Contains(p));
            }
            // provjerimo 3 krajnja polja uz brod (lijevo-gore, lijevo-ispod, ispod)
            Assert.IsTrue(zaEliminirati.Contains(new Polje(0, stupaca - 2)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(duljinaBroda, stupaca - 2)));
            Assert.IsTrue(zaEliminirati.Contains(new Polje(duljinaBroda, stupaca - 1)));
        }
コード例 #4
0
        public void Brodograditelj_PoljaKojaTrebaEliminiratiOkoBrodaVraćaPoljaBrodaISvaOkolnaPoljaZaBrodUSrediniMreže()
        {
            int   redaka       = 10;
            int   stupaca      = 10;
            int   duljinaBroda = 4;
            Polje početnoPolje = new Polje(3, 2);
            Smjer smjer        = Smjer.Vertikalno;

            Brodograditelj b          = new Brodograditelj();
            var            poljaBroda = b.DajPoljaZaBrod(smjer, početnoPolje, duljinaBroda);

            var zaEliminirati = b.PoljaKojaTrebaEliminiratiOkoBroda(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)));
        }