Exemplo n.º 1
0
        public void AI_NakonPogotkaIPromasajaTaktikaJeTrazenjeSmjera()
        {
            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();
            ai.ObradiPogodak(rezultatGadjanja.promasaj);
            Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaTrazenjeSmjeraRazmak));
        }
Exemplo n.º 2
0
        public void AI_NakonDvaPogotkaTaktikaJeUnistavanje()
        {
            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();
            ai.ObradiPogodak(rezultatGadjanja.pogodak);
            p = ai.Gadjaj();
            Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaUnistavanjeRazmak));
        }
Exemplo n.º 3
0
        public void AI_NakonMukotrpnogPotapanjaTaktikaJeNapipavanje()
        {
            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();
            ai.ObradiPogodak(rezultatGadjanja.pogodak);
            p = ai.Gadjaj();
            ai.ObradiPogodak(rezultatGadjanja.pogodak);
            p = ai.Gadjaj();
            ai.ObradiPogodak(rezultatGadjanja.potopljen);
            p = ai.Gadjaj();
            Assert.IsInstanceOfType(ai.Taktika, typeof(TaktikaNapipavanjeRazmak));
        }
Exemplo n.º 4
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));
        }
Exemplo n.º 5
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));
        }
Exemplo n.º 6
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));
        }
Exemplo n.º 7
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);
        }
Exemplo 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));
        }
Exemplo n.º 9
0
        public void Igraj()
        {
            rezultatGadjanja rez = rezultatGadjanja.nepoznato;

            while (true)
            {
                // za pocetak mi igramo prvi, dok ne smislimo bolji algoritam
                Polje p = ai.Gadjaj();
                rez = (rezultatGadjanja)protivnik.JaviRezultat(new Tuple <int, int>(p.Redak, p.Stupac));
                if (rez == rezultatGadjanja.PORAZ)
                {
                    this.tbDnevnik.Text = "Mi smo pobjedili!";
                    break;
                }
                this.Invoke((MethodInvoker) delegate { tbDnevnik.AppendText("(" + p.Redak + ", " + p.Stupac + "): " + rez.ToString() + "\n"); });
                Brod b = new Brod(ai.zap.trenutnaMeta);
                ai.ObradiPogodak(rez);
                protivnikFlotaGUI.DodajPolje(p, rez);
                if (rez == rezultatGadjanja.potopljen)
                {
                    protivnikFlotaGUI.PotopiBrod(b);
                }
                this.Invoke((MethodInvoker) delegate
                            { protivnikFlotaGUI.Invalidate(); });

                // sada igra protivnik
                Tuple <int, int> koord = protivnik.Gadjaj();
                p   = new Polje(koord.Item1, koord.Item2);
                rez = flota.ObradiPogodak(p.Redak, p.Stupac);
                if (rez == rezultatGadjanja.PORAZ)
                {
                    this.tbDnevnik.Text = "Protivnik je pobjedio!";
                    break;
                }
                this.Invoke((MethodInvoker) delegate { tbDnevnik.AppendText("@@ (" + p.Redak + ", " + p.Stupac + "): " + rez.ToString() + "\n"); });
                protivnik.ObradiPogodak((OOMPotapanje.mojRezultatGadjanja)rez);
                this.Invoke((MethodInvoker) delegate { mojaFlotaGUI.ZadajFlotu(flota); });


                // spavaj da ne bude prebrzo
                Thread.Sleep(500);
            }
        }