Esempio n. 1
0
        public void MoverPeca(Posicao origem, Posicao destino)
        {
            Peca pecaMovimentada = Tabuleiro.RetirarPeca(origem);
            Peca pecaCapturada   = Tabuleiro.RetirarPeca(destino);

            Tabuleiro.ColocarPeca(pecaMovimentada, destino);
            pecaMovimentada.IncrementarMovimento();

            if (pecaCapturada != null)
            {
                PecasVivas.Remove(pecaCapturada);
                PecasCapturadas.Add(pecaCapturada);
            }

            if (ReiEstaEmXeque(JogadorAtual))
            {
                Tabuleiro.RetirarPeca(destino);
                Tabuleiro.ColocarPeca(pecaMovimentada, origem);

                if (pecaCapturada != null)
                {
                    Tabuleiro.ColocarPeca(pecaCapturada, destino);
                    PecasVivas.Add(pecaCapturada);
                    PecasCapturadas.Remove(pecaCapturada);
                }

                throw new TabuleiroException("Você não pode se colocar em Xeque!");
            }
        }
Esempio n. 2
0
 public void ColocarPeca(Peca peca, Posicao pos)
 {
     Tabuleiro.ColocarPeca(peca, pos);
     PecasVivas.Add(peca);
 }