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; }
public List<PecaDama> PecasComPossibilidadeDeMovimento() { var lista = new List<PecaDama>(); RegraDama regraDama = new RegraDama(_pecasTabuleiro, _listaLugaresValidos); RegraPeao regraPeao = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos); lista.AddRange(regraPeao.PecasComPossibilidadeMovimento(_jogadorIA)); lista.AddRange(regraDama.PecasComPossibilidadeMovimento(_jogadorIA)); return lista; }
public void retorna_pecas_vizinhas_inimigas_a_partir_da_peca () { this.CriarTabuleiroFake(); PecaDama pecaTeste = new PecaDama { Pos = new Point(6, 6), Tipo = TipoPeca.Peao, Jogador = Jogador.Agil }; RegraPeao regraPeao = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos); List<PecaDama> pecasInimigas = regraPeao.RetornaPecasVizinhasInimigas(pecaTeste); List<PecaDama> pecasInimigasCandidatas = regraPeao.RetornaPecasComPossibilidadeEliminacao(pecaTeste, pecasInimigas); regraPeao.ExibirMovimentoAtaque(pecaTeste, pecasInimigasCandidatas); }
private void CriarPossibilidadeMovimento(PecaDama peca, Grid grid) { RegraPeao regraPeao = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos); RegraDama regraDama = new RegraDama(_pecasTabuleiro, _listaLugaresValidos); switch (peca.Tipo) { case TipoPeca.Peao: regraPeao.ExibirPossibilidadeMovimento(peca); break; case TipoPeca.Dama: regraDama.ExibirPossibilidadeMovimento(peca); break; } }
private bool PecaAtacanteEJogoEmAtaque(PecaDama peca) { List<PecaDama> pecasEmAtaque = new RegraPeao(_pecasTabuleiro, _listaLugaresValidos).PecasEmAtaque(peca.Jogador); if (pecasEmAtaque.Count > 0 && !pecasEmAtaque.Exists(x => x == peca)) { return false; } return true; }
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; }