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