Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        public void AIRazmak_GadjajDajePoljeUnutarMreze()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(10, 10, new int[] { 4 });
            ai.Gadjaj();
            Assert.IsTrue(ai.Mreza.polja.Contains(ai.zap.gadjanoPolje));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        public void AI_IzvaziMjerenjeBrzine()
        {
            // zanima nas samo brzina izvrsavanja testa
            AIFactory.Pravila = PravilaIgre.DodirivanjeZabranjeno;
            int[]      duljine = new int[] { 4, 3, 2, 1 };
            AITemplate ai      = AIFactory.DajAI();

            ai.Initialize(10, 10, duljine);
            ai.Izvazi();
        }
Esempio n. 5
0
        public void AI_NakonPrvogPogotkaTaktikaJeTrazenjeSmjera()
        {
            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();
            Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak));
        }
Esempio n. 6
0
        public void AI_InitializeIspravnoPostavljaParametre()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(5, 5, new int[] { 2, 3, 3, 4 });
            Assert.IsTrue(((List <Polje>)ai.Mreza.DajSlobodnaPolja()).Count == 25);
            Assert.IsTrue(ai.Flota.Count == 4);
            Assert.IsTrue(ai.Flota.Contains(2));
            Assert.IsTrue(ai.Flota.FindAll(x => x == 3).Count == 2);
            Assert.IsTrue(ai.Flota.Contains(4));
        }
Esempio n. 7
0
        public void AI_NakonPotapanjaTaktikaJeNapipavanje()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(10, 10, new int[] { 2, 3, 3, 4 });
            Polje p = ai.Gadjaj();

            ai.ObradiPogodak(rezultatGadjanja.potopljen);
            p = ai.Gadjaj();
            Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak));
        }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
        public void AI_IzvaziIspravnoRacunaTezinuZaStupac()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(5, 1, new int[] { 4 });
            ai.Izvazi();
            foreach (Polje p in ai.Mreza.polja)
            {
                if (p.Redak > 0 && p.Redak < 4)
                {
                    Assert.IsTrue(p.Tezina == 2);
                }
                else
                {
                    Assert.IsTrue(p.Tezina == 1);
                }
            }
        }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        public void AIRazmak_EliminirajBrodIspravnoEliminiraPoljaZaBrodUUglu()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(10, 10, new int[] { 4 });
            Brod b = new Brod(new List <Polje>()
            {
                new Polje(0, 0), new Polje(0, 1), new Polje(0, 2), new Polje(0, 3)
            });
            List <Polje> prosireniBrod = new List <Polje>();

            ai.EliminirajBrod(b.Polja);
            prosireniBrod = b.Polja;
            prosireniBrod.Add(new Polje(1, 0));
            prosireniBrod.Add(new Polje(1, 1));
            prosireniBrod.Add(new Polje(1, 2));
            prosireniBrod.Add(new Polje(1, 3));
            prosireniBrod.Add(new Polje(0, 4));
            Assert.IsFalse(prosireniBrod.Intersect(ai.Mreza.DajSlobodnaPolja()).Any());
        }
Esempio n. 13
0
        private void btnFight_Click(object sender, EventArgs e)
        {
            // na pocetku ukloni stare flote ako postoje
            if (mojaFlotaGUI != null)
            {
                this.Controls.Remove(mojaFlotaGUI);
            }
            if (protivnikFlotaGUI != null)
            {
                this.Controls.Remove(protivnikFlotaGUI);
            }

            BrodograditeljTemplate brodograditelj = BrodograditeljFactory.DajBrodograditelja();

            int[] duljine = SastaviListuBrodova();
            int   redaka  = (int)numRedaka.Value;
            int   stupaca = (int)numStupaca.Value;

            flota                 = brodograditelj.SloziFlotu(redaka, stupaca, duljine);
            mojaFlotaGUI          = new FlotaGUI(redaka, stupaca);
            mojaFlotaGUI.sirina   = 250;
            mojaFlotaGUI.Location = new Point(20, 170);
            mojaFlotaGUI.ZadajFlotu(flota);
            this.Controls.Add(mojaFlotaGUI);

            protivnikFlotaGUI          = new FlotaNeprijatelj(redaka, stupaca);
            protivnikFlotaGUI.sirina   = 250;
            protivnikFlotaGUI.Location = new Point(370, 170);
            this.Controls.Add(protivnikFlotaGUI);
            ai = AIFactory.DajAI();
            ai.Initialize(redaka, stupaca, duljine);

            // iniciraj protivnika
            protivnik = new OOMPotapanje.Protivnik(redaka, stupaca, duljine);

            // zapocni igru
            ProgressChangedEventArgs x;

            bgWorker.RunWorkerAsync();
        }
Esempio n. 14
0
        public void AIRazmak_EliminirajBrodIspravnoEliminiraPolja()
        {
            AITemplate ai = AIFactory.DajAI();

            ai.Initialize(10, 10, new int[] { 4 });
            Brod b = new Brod(new List <Polje>()
            {
                new Polje(4, 4), new Polje(4, 5), new Polje(4, 6), new Polje(4, 7)
            });
            List <Polje> prosireniBrod = new List <Polje>();

            ai.EliminirajBrod(b.Polja);
            foreach (Polje p in b.Polja)
            {
                prosireniBrod.Add(p);
                prosireniBrod.Add(new Polje(p.Redak, p.Stupac + 1));
                prosireniBrod.Add(new Polje(p.Redak, p.Stupac - 1));
                prosireniBrod.Add(new Polje(p.Redak + 1, p.Stupac));
                prosireniBrod.Add(new Polje(p.Redak - 1, p.Stupac));
            }
            Assert.IsFalse(prosireniBrod.Intersect(ai.Mreza.DajSlobodnaPolja()).Any());
        }