示例#1
0
        public Peca ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = tabuleiro.RetiraPeca(origem);

            p.IncrementaQtdMovimento();
            Peca pecaCapturada = tabuleiro.RetiraPeca(destino);

            if (pecaCapturada != null)
            {
                pecasCapturadas.Add(pecaCapturada);
            }

            tabuleiro.ColocaPeca(p, destino);
            return(pecaCapturada);
        }
示例#2
0
        public Peca ExecutaMovimento(Posicao origem, Posicao destino)
        {
            Peca p = Tab.RetirarPeca(origem);

            p.IncrementaQtdMovimento();
            Peca pecaCapturada = Tab.RetirarPeca(destino);

            Tab.colocarPeca(p, destino);

            if (pecaCapturada != null)
            {
                capturadas.Add(pecaCapturada);
            }

            // #jogada especial - Roque pequeno
            if (p is Rei && destino.Coluna == origem.Coluna + 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna + 3);
                Posicao destinoT = new Posicao(destino.Linha, destino.Coluna + 1);
                Peca    t        = Tab.RetirarPeca(origemT);
                t.IncrementaQtdMovimento();
                Tab.colocarPeca(t, destinoT);
            }

            // #jogada especial - Roque Grande
            if (p is Rei && destino.Coluna == origem.Coluna - 2)
            {
                Posicao origemT  = new Posicao(origem.Linha, origem.Coluna - 4);
                Posicao destinoT = new Posicao(destino.Linha, destino.Coluna - 1);
                Peca    t        = Tab.RetirarPeca(origemT);
                t.IncrementaQtdMovimento();
                Tab.colocarPeca(t, destinoT);
            }


            return(pecaCapturada);
        }