Exemple #1
0
        public List<PecaDama> PecasComPossibilidadeAtaque(List<PecaDama> pecas)
        {
            var lista = new List<PecaDama>();


            RegraDama regraDama = new RegraDama(_pecasTabuleiro, _listaLugaresValidos);
            RegraPeao regraPeao = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos);

            foreach (var pecaDama in pecas)
            {

                List<PecaDama> listaCandidatas = new List<PecaDama>();

                if (pecaDama.Tipo == TipoPeca.Dama)
                {
                    listaCandidatas = regraDama.PecasCandidatasEliminacao(pecaDama);
                }
                else if (pecaDama.Tipo == TipoPeca.Peao)
                {
                    listaCandidatas = regraPeao.PecasCandidatasEliminacao(pecaDama);
                }

                if (listaCandidatas.Count > 0)
                {
                    lista.Add(pecaDama);
                }
            }
            return lista;

        }
        private List<PecaDama> ObterPecasCandidatasEliminacao(PecaDama peca)
        {
            List<PecaDama> pecas = new List<PecaDama>();
            RegraPeao regraPeao = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos);
            RegraDama regraDama = new RegraDama(_pecasTabuleiro, _listaLugaresValidos);

            switch (peca.Tipo)
            {
                case TipoPeca.Peao:
                    pecas = regraPeao.PecasCandidatasEliminacao(peca);
                    break;
                case TipoPeca.Dama:
                    pecas = regraDama.PecasCandidatasEliminacao(peca);
                    break;
            }
            return pecas;
        }