Beispiel #1
0
        public void NemogucPotez()
        {
            List <Figura> lista    = new List <Figura>();
            Figura        kraljica = new Kraljica(Boja.Bijeli, 1);

            kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4);
            lista.Add(kraljica);
            Ploca    ploca    = new Ploca(lista);
            Pozicija pozicija = new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(7);
            bool     legalan  = true;
            bool     nemoguc  = false;

            try
            {
                legalan = kraljica.LegalanPotez(pozicija, ploca);
            }
            catch (IllegalMoveException ime)
            {
                if (ime.NemogucPotez)
                {
                    nemoguc = true;
                }
            }
            Assert.IsTrue(nemoguc);
        }
Beispiel #2
0
        public void LovacSeNeKreceKaoLovacIznimka()
        {
            Ploca    ploca        = new Ploca();
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(2);
            Figura lovac        = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(2));
            bool   legalanPotez = lovac.LegalanPotez(novaPozicija, ploca);
        }
Beispiel #3
0
        public void SkakacBacaIznimkuZaZauzetoPolje()
        {
            Ploca    ploca        = new Ploca();
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(3);
            Boja   boja   = Boja.Bijeli;
            Skakac skakac = new Skakac(boja, 1);

            skakac.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(1);
            bool nelegalno = skakac.LegalanPotez(novaPozicija, ploca);
        }
Beispiel #4
0
        public void LegalanPotezLovac()
        {
            List <Figura> lista    = new List <Figura>();
            Figura        kraljica = new Kraljica(Boja.Bijeli, 1);

            kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4);
            lista.Add(kraljica);
            Ploca    ploca    = new Ploca(lista);
            Pozicija pozicija = new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(4);
            bool     legalan  = kraljica.LegalanPotez(pozicija, ploca);

            Assert.IsTrue(legalan);
        }
Beispiel #5
0
        public void KonstruktorSaFiguramaOk()
        {
            List <Figura> lista = new List <Figura>();
            Boja          boja  = Boja.Bijeli;
            Figura        lovac = new Lovac(boja, 1);

            lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(4));
            lista.Add(lovac);
            Figura skakac = new Skakac(boja, 2);

            skakac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(5));
            lista.Add(skakac);
            Ploca ploca = new Ploca(lista);
        }
Beispiel #6
0
        public void LegalanPotez()
        {
            List <Figura> lista = new List <Figura>();
            Figura        lovac = new Lovac(Boja.Bijeli, 1);

            lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(3));
            lista.Add(lovac);
            Ploca    ploca        = new Ploca(lista);
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(2).PostaviVertikalno(4);
            bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca);

            Assert.IsTrue(legalanPotez);
        }
Beispiel #7
0
        /// <summary>
        /// Izvršava potez igre
        /// </summary>
        /// <param name="redak">Koordinata polja .. redak</param>
        /// <param name="stupac">Koordinata polja .. supac</param>
        /// <returns>Vraća stanje igre i pobjednika ako postoji.</returns>
        public (StanjeIgre State, Igrac Winner) OdigrajPotez(int redak, int stupac)
        {
            var stanje = Ploca.ProvjeriStanjeIgre();

            if (stanje.State == StanjeIgre.IgraUTijeku)
            {
                Ploca.OznaciPolje(redak, stupac, IgracNaPotezu.Oznaka);
                PostaviSlijedecegIgracaNaPotezu();
                var novoStanje = Ploca.ProvjeriStanjeIgre();
                return(novoStanje.State, Igraci.FirstOrDefault(igrac => igrac.Oznaka == novoStanje.Pobjednik));
            }
            else
            {
                throw new InvalidOperationException("Igra je završena. Započnite novu igru.");
            }
        }
Beispiel #8
0
        public void KraljicaUzimaFiguruKaoTop()
        {
            List <Figura> lista    = new List <Figura>();
            Figura        kraljica = new Kraljica(Boja.Bijeli, 1);

            kraljica.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(4);
            lista.Add(kraljica);
            Figura pjesak = new Pjesak(Boja.Crni, 2);

            pjesak.Pozicija.PostaviHorizontalno(4).PostaviVertikalno(4);
            lista.Add(pjesak);
            Ploca    ploca    = new Ploca(lista);
            Pozicija pozicija = new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(4);
            bool     legalan  = kraljica.LegalanPotez(pozicija, ploca);

            Assert.IsTrue(legalan);
        }
Beispiel #9
0
        public void FiguraNaPolaPutaDrugeBojeGoreBacaIllegalMoveIznimku()
        {
            List <Figura> lista = new List <Figura>();
            Figura        lovac = new Lovac(Boja.Bijeli, 1);

            lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(1));
            lista.Add(lovac);
            Figura pjesak = new Pjesak(Boja.Crni, 2);

            pjesak.PostaviPoziciju(new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(2));
            lista.Add(pjesak);
            Ploca    ploca        = new Ploca(lista);
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(6).PostaviVertikalno(4);
            bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca);
        }
Beispiel #10
0
        public void LovacJedePjesakaOpet()
        {
            List <Figura> lista = new List <Figura>();
            Figura        lovac = new Lovac(Boja.Bijeli, 1);

            lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(6).PostaviVertikalno(6));
            lista.Add(lovac);
            Figura pjesak = new Pjesak(Boja.Crni, 2);

            pjesak.PostaviPoziciju(new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(1));
            lista.Add(pjesak);
            Ploca    ploca        = new Ploca(lista);
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(1);
            bool legalanPotez = lovac.LegalanPotez(novaPozicija, ploca);

            Assert.IsTrue(legalanPotez);
        }
Beispiel #11
0
 /// <summary>
 /// Prikaz stanja ploče koristeći znakove (slova, brojke, ...)
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     return(Ploca.ToString());
 }
Beispiel #12
0
        static void Main(string[] args)
        {
            Console.WriteLine("Play game?(0=no)");
            string yes = "yes";

            yes = Console.ReadLine();
            Igrac bijeli = new Igrac(Boja.Bijeli);
            Igrac crni   = new Igrac(Boja.Crni);
            Ploca ploca  = new Ploca();

            ploca.IspisiPlocu();

            bool gotovo = false;

            //gotovo = ploca.IgraGotova();
            while (!gotovo)
            {
                Pozicija poz = new Pozicija();
                Console.WriteLine("Potez: " + (Ploca.Potez + 1));
                //Figura figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(4));
                //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(5), ploca);
                //figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(3));
                //figura.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(5), ploca);
                //ploca.IspisiPlocu();
                Console.WriteLine("Bijeli na potezu");
                bool   ok          = false;
                Figura figura      = null;
                string potez       = "";
                string potezIgraca = "";
                while (!ok)
                {
                    potezIgraca = "";
                    Console.Write("Odaberite figuru iz polja (npr.A1):");
                    potez        = Console.ReadLine();
                    poz          = ploca.PozicijaZaPolje(potez);
                    potezIgraca += potez;
                    figura       = ploca.VratiFiguru(poz);
                    if (figura == null)
                    {
                        continue;
                    }

                    Console.Write("Odigrajte potez (npr. A3):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    try
                    {
                        bijeli.OdigrajPotez(figura, poz, ploca);
                        ok = true;
                        ploca.potezi.Add(potezIgraca);
                    }
                    catch (Exception ex)
                    {
                        ok = false;
                        Console.WriteLine(ex.Message);
                    }
                }


                ploca.IspisiPlocu();

                Console.WriteLine("Crni na potezu");
                ok = false;

                while (!ok)
                {
                    potezIgraca = "";
                    Console.Write("Odaberite figuru iz polja (npr.A1):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    figura       = ploca.VratiFiguru(poz);
                    if (figura != null)
                    {
                        ok = true;
                    }
                    Console.Write("Odigrajte potez (npr. A3):");
                    potez        = Console.ReadLine();
                    potezIgraca += potez;
                    poz          = ploca.PozicijaZaPolje(potez);
                    try
                    {
                        crni.OdigrajPotez(figura, poz, ploca);
                        ok = true;
                        ploca.potezi.Add(potezIgraca);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        ok = false;
                    }
                }



                ploca.IspisiPlocu();
                Ploca.Potez++;
            }
        }