示例#1
0
文件: Ploca.cs 项目: drazen41/Chess
 private void Inicijalizacija()
 {
     stanje[0, 0] = new Top(Boja.Bijeli, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(0));
     stanje[0, 1] = new Skakac(Boja.Bijeli, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(1));
     stanje[0, 2] = new Lovac(Boja.Bijeli, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(2));
     stanje[0, 3] = new Kralj(Boja.Bijeli).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(4));
     stanje[0, 4] = new Kraljica(Boja.Bijeli, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(3));
     stanje[0, 5] = new Lovac(Boja.Bijeli, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(5));
     stanje[0, 6] = new Skakac(Boja.Bijeli, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(6));
     stanje[0, 7] = new Top(Boja.Bijeli, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(0).PostaviVertikalno(7));
     for (int i = 0; i < 8; i++)
     {
         stanje[1, i] = new Pjesak(Boja.Bijeli, i + 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(1).PostaviVertikalno(i));
     }
     stanje[7, 0] = new Top(Boja.Crni, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(0));
     stanje[7, 1] = new Skakac(Boja.Crni, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(1));
     stanje[7, 2] = new Lovac(Boja.Crni, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(2));
     stanje[7, 3] = new Kralj(Boja.Crni).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(4));
     stanje[7, 4] = new Kraljica(Boja.Crni, 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(3));
     stanje[7, 5] = new Lovac(Boja.Crni, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(5));
     stanje[7, 6] = new Skakac(Boja.Crni, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(6));
     stanje[7, 7] = new Top(Boja.Crni, 2).PostaviPoziciju(new Pozicija().PostaviHorizontalno(7).PostaviVertikalno(7));
     for (int i = 0; i < 8; i++)
     {
         stanje[6, i] = new Pjesak(Boja.Crni, i + 1).PostaviPoziciju(new Pozicija().PostaviHorizontalno(6).PostaviVertikalno(i));
     }
 }
示例#2
0
        public static Kralj VratiKraljaSaPloce(Figura figura, Ploca ploca)
        {
            Kralj kralj = null;

            if (figura.Boja == Boja.Bijeli)
            {
                kralj = new Kralj(Boja.Bijeli);
            }
            else
            {
                kralj = new Kralj(Boja.Crni);
            }
            return(ploca.VratiFiguruIstogTipaBoje(kralj) as Kralj);
        }
示例#3
0
文件: Top.cs 项目: drazen41/Chess
        public override bool LegalanPotez(Pozicija novaPozicija, Ploca ploca)
        {
            base.LegalanPotez(novaPozicija, ploca);

            Figura figura = null;

            if (this.Pozicija.Horizontalno != novaPozicija.Horizontalno && this.Pozicija.Vertikalno != novaPozicija.Vertikalno)
            {
                throw new IllegalMoveException("Illegal move", true);
            }
            if (this.Pozicija.Vertikalno < novaPozicija.Vertikalno)
            {
                for (int i = this.Pozicija.Vertikalno + 1; i <= novaPozicija.Vertikalno; i++)
                {
                    figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(novaPozicija.Horizontalno).PostaviVertikalno(i));

                    if (figura != null && figura.Boja == this.Boja)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                    else if (figura != null && figura.Pozicija.Vertikalno < novaPozicija.Vertikalno)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                }
            }
            if (this.Pozicija.Vertikalno > novaPozicija.Vertikalno)
            {
                for (int i = this.Pozicija.Vertikalno - 1; i >= novaPozicija.Vertikalno; i--)
                {
                    figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(novaPozicija.Horizontalno).PostaviVertikalno(i));
                    if (figura != null && figura.Boja == this.Boja)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                    else if (figura != null && figura.Pozicija.Horizontalno < novaPozicija.Horizontalno)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                }
            }

            if (this.Pozicija.Horizontalno < novaPozicija.Horizontalno)
            {
                for (int i = this.Pozicija.Horizontalno + 1; i <= novaPozicija.Horizontalno; i++)
                {
                    figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(i).PostaviVertikalno(novaPozicija.Vertikalno));
                    if (figura != null && figura.Boja == this.Boja)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                    else if (figura != null && figura.Pozicija.Horizontalno < novaPozicija.Horizontalno)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                }
            }
            if (this.Pozicija.Horizontalno > novaPozicija.Horizontalno)
            {
                for (int i = this.Pozicija.Horizontalno - 1; i >= novaPozicija.Horizontalno; i--)
                {
                    figura = ploca.VratiFiguru(new Pozicija().PostaviHorizontalno(i).PostaviVertikalno(novaPozicija.Vertikalno));
                    if (figura != null && figura.Boja == this.Boja)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                    else if (figura != null && figura.Pozicija.Horizontalno < novaPozicija.Horizontalno)
                    {
                        throw new IllegalMoveException("Figura " + figura.GetType().Name + " na putu.");
                    }
                }
            }

            var kralj = Kralj.VratiKraljaSaPloce(this, ploca);

            return(true);
        }