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)); } }
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); }
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); }