示例#1
0
        public void Brod_GađajVraćaPogodakZaPrvoPogođenoPolje()
        {
            Brod            brod = new Brod(new Polje[] { new Polje(1, 1), new Polje(1, 2), new Polje(1, 3) });
            RezultatGađanja rez  = brod.Gađaj(new Polje(1, 2));

            Assert.AreEqual(RezultatGađanja.Pogodak, rez);
        }
示例#2
0
        public void OnProtivničkoPoljeJeGađano(object sender, GađanoPoljeEventArgs e)
        {
            RezultatGađanja rez = flota.Gađaj(e.Polje);


            e.rez = rez;
        }
示例#3
0
        public void Brod_GađajVraćaPromašajZaPoljeKojeNePripadaBrodu()
        {
            Brod            brod = new Brod(new Polje[] { new Polje(1, 1), new Polje(1, 2) });
            RezultatGađanja rez  = brod.Gađaj(new Polje(0, 0));

            Assert.AreEqual(RezultatGađanja.Promašaj, rez);
        }
示例#4
0
        public void ObradiGađanje(RezultatGađanja rezultat)
        {
            pucač.EvidentirajRezultat(rezultat);
            // ovisno o rezultatu treba promijeniti taktiku
            switch (rezultat)
            {
            case RezultatGađanja.Promašaj:
                return;

            case RezultatGađanja.Pogodak:
                PromijeniTaktikuUSlučajuPogotka();
                return;

            case RezultatGađanja.Potonuće:
                ZabilježiPotopljeniBrod();
                EliminirajPoljaOkoBroda(pucač.PogođenaPolja);
                if (duljineBrodova.Count > 0)
                {
                    PromijeniTaktikuUNapipavanje();
                }
                return;

            default:
                Debug.Assert(false, string.Format("Nepodržani rezultat gađanja {0}", rezultat.ToString()));
                return;
            }
        }
示例#5
0
 public void EvidentirajRezultat(RezultatGađanja rezultat)
 {
     if (rezultat != RezultatGađanja.Promašaj)
     {
         pogođenaPolja.Add(zadnjeGađano);
     }
     zadnjeGađano = null;
 }
 public void EvidentirajRezultat(RezultatGađanja rezultat)
 {
     if (rezultat == RezultatGađanja.Promašaj)
     {
         return;
     }
     pogođenaPolja.Add(zadnjeGađano);
     pogođenaPolja.Sort((a, b) => a.Redak - b.Redak + a.Stupac - b.Stupac);
 }
示例#7
0
        public void Brod_GađajVraćaPogodakZaDrugoGađanjeIstogPolja()
        {
            Brod brod = new Brod(new Polje[] { new Polje(1, 1), new Polje(1, 2), new Polje(1, 3) });

            brod.Gađaj(new Polje(1, 2));
            RezultatGađanja rez = brod.Gađaj(new Polje(1, 2));

            Assert.AreEqual(RezultatGađanja.Pogodak, rez);
        }
示例#8
0
        private void KompGađa()
        {
            Polje p = kompovoTopništvo.UputiPucanj();

            Console.WriteLine(string.Format("Komp gađa polje: {0}-{1}", p.Stupac.UOznakuStupca(), p.Redak.UOznakuRetka()));
            RezultatGađanja rez = UnosRezultata();

            kompovoTopništvo.ObradiGađanje(rez);
            Console.WriteLine();
        }
示例#9
0
        public void Brod_GađajVraćaPotopljenZaTrećePogođenoPoljeBrodaOdTriPolja()
        {
            Brod brod = new Brod(new Polje[] { new Polje(1, 1), new Polje(1, 2), new Polje(1, 3) });

            brod.Gađaj(new Polje(1, 2));
            brod.Gađaj(new Polje(1, 3));
            RezultatGađanja rez = brod.Gađaj(new Polje(1, 1));

            Assert.AreEqual(RezultatGađanja.Potopljen, rez);
        }
示例#10
0
        public void Brod_GađajVraćaPotopljenZaDrugoGađanjePotopljenogBroda()
        {
            Brod brod = new Brod(new Polje[] { new Polje(1, 1), new Polje(1, 2), new Polje(1, 3) });

            brod.Gađaj(new Polje(1, 2));
            brod.Gađaj(new Polje(1, 3));
            brod.Gađaj(new Polje(1, 1));
            RezultatGađanja rez = brod.Gađaj(new Polje(1, 1));

            Assert.AreEqual(RezultatGađanja.Potopljen, rez);
        }
示例#11
0
        private RezultatGađanja RačunaloGađa()
        {
            Polje  polje  = topništvo.Gađaj();
            string stupac = ((char)('A' + polje.Stupac)).ToString();
            string redak  = (polje.Redak + 1).ToString();

            Console.WriteLine("Ja gađam polje: {0}-{1}", stupac, redak);
            RezultatGađanja rezultat = UčitajRezultatGađanja();

            topništvo.ObradiGađanje(rezultat);
            return(rezultat);
        }
示例#12
0
        private void JaGađam()
        {
            Console.Write("Ti gađaš: ");
            Polje           polje = UnosPolja();
            RezultatGađanja rez   = kompovaFlota.Gađaj(polje);

            if (rez == RezultatGađanja.Potonuće)
            {
                ++brojPotopljenihBrodova;
            }
            Console.WriteLine(rez.ToString());
        }
示例#13
0
 public RezultatGađanja Gađaj(Polje p)
 {
     foreach (Brod brod in brodovi)
     {
         RezultatGađanja rez = brod.Gađaj(p);
         if (rez != RezultatGađanja.Promašaj)
         {
             return(rez);
         }
     }
     return(RezultatGađanja.Promašaj);
 }
示例#14
0
        public void ObojiPolje(RezultatGađanja rez)
        {
            switch (rez)
            {
            case RezultatGađanja.Pogodak:
                this.Pogodi();
                break;

            case RezultatGađanja.Promašaj:
                this.Promaši();
                break;

            case RezultatGađanja.Potonuće:
                this.Potopi();
                break;
            }
        }
示例#15
0
        private RezultatGađanja OsobaGađa()
        {
            Polje           polje    = UčitajPoljeZaGađanje();
            RezultatGađanja rezultat = flota.Gađaj(polje);

            switch (rezultat)
            {
            case RezultatGađanja.Promašaj:
                Console.WriteLine("Promašaj!");
                break;

            case RezultatGađanja.Pogodak:
                Console.WriteLine("Pogodak!");
                break;

            case RezultatGađanja.Potopljen:
                Console.WriteLine("Brod potopljen!");
                break;
            }
            return(rezultat);
        }
示例#16
0
        public void ObradiGađanje(RezultatGađanja rezultat)
        {
            mreža.UkloniPolje(gađanoPolje);
            switch (rezultat)
            {
            case RezultatGađanja.Promašaj:
                return;

            case RezultatGađanja.Pogodak:
                pogođenaPolja.Add(gađanoPolje);
                return;

            case RezultatGađanja.Potopljen:
                pogođenaPolja.Add(gađanoPolje);
                TerminatorPolja terminator = new TerminatorPolja(mreža);
                terminator.UkloniPolja(pogođenaPolja);
                return;

            default:
                Debug.Assert(false);
                break;
            }
        }
示例#17
0
        public void ObradiGađanje(RezultatGađanja rezultat)
        {
            pucač.ObradiGađanje(rezultat);
            switch (rezultat)
            {
            case RezultatGađanja.Promašaj:
                return;

            case RezultatGađanja.Pogodak:
                PromijeniTaktikuNakonPogotka();
                return;

            case RezultatGađanja.Potopljen:
                // potopljeni brod uklanjamo iz liste brodova koje gađamo
                duljineBrodova.Remove(pucač.PogođenaPolja.Count());
                PromijeniTaktikuUNasumično();
                return;

            default:
                Debug.Assert(false);
                break;
            }
        }
示例#18
0
        public void ObradiGađanje(RezultatGađanja rezultat)
        {
            //DZ da testovi prođu
            switch (rezultat)
            {
            case RezultatGađanja.Potonuće:
                PromjeniTaktikuUNapipavanje();
                break;

            case RezultatGađanja.Pogodak:
                switch (TrenutnaTaktika)
                {
                case TaktikaGađanja.Napipavanje:
                    PromjeniTaktikuUOkruživanje();
                    break;

                case TaktikaGađanja.Okruživanje:
                    PromjeniTaktikuUSustavnoUništavanje();
                    break;

                case TaktikaGađanja.SustavnoUništavanje:
                    break;

                default:
                    Debug.Assert(false, string.Format("Nepodržana taktika {0}", TrenutnaTaktika.ToString()));
                    break;
                }
                break;

            case RezultatGađanja.Promašaj:
                break;

            default:
                Debug.Assert(false, string.Format("Nepodržani rezltat gađanja {0}", rezultat.ToString()));
                break;
            }
        }
示例#19
0
        public mojRezultatGadjanja JaviRezultat(Tuple <int, int> koordinate)
        {
            RezultatGađanja rez = flota.Gađaj(new Polje(koordinate.Item1, koordinate.Item2));

            switch (rez)
            {
            case RezultatGađanja.Promašaj:
                return(mojRezultatGadjanja.promasaj);

            case RezultatGađanja.Pogodak:
                return(mojRezultatGadjanja.pogodak);

            case RezultatGađanja.Potonuće:
                preostaliBrodovi--;
                if (preostaliBrodovi == 0)
                {
                    return(mojRezultatGadjanja.PORAZ);
                }
                return(mojRezultatGadjanja.potopljen);

            default:
                throw new Exception("Krivi rezultat gadjanja");
            }
        }
示例#20
0
 public void EvidentirajRezultat(RezultatGađanja rezultat)
 {
 }
示例#21
0
 public void EvidentirajRezultat(RezultatGađanja rezultat)
 {
     throw new NotImplementedException();
 }