Advertisement
FernandoMendes

Untitled

Nov 18th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | None | 0 0
  1.  /**
  2.      * Resolução do ex 3f
  3.      *
  4.      * @param p personagem que quer conquistar o local
  5.      * @param l local que quer ser conquistado
  6.      * @return uma instancia da classe conquista
  7.      */
  8.     public Conquista consegueConquistarLocal(Personagem p, Local l) {
  9.         if (!(redeLocal.checkVertex(l) || !redeAlianca.validVertex(p))) {//Verifico se o lugar existe e a personagem também
  10.             return null;
  11.         }
  12.         LinkedList<Local> lugaresConquistados = new LinkedList<>();
  13.         for (Personagem aliado : p.getAliados()) {
  14.             if (redeAlianca.getEdge(p, aliado) != null) {
  15.                 double forca_alianca = (aliado.getnPontos() + p.getnPontos()) * redeAlianca.getEdge(p, aliado).getWeight(); // (Força_alianca = forcaAliado + forcaPersonagem)*FatorCompatibilidade
  16.                 if (l.getDono() != null) {
  17.                     if (!(l.getDono().equals(p))) { //se o alidado nao for dono do local x podemos aplicar o shortPath
  18.                         double forca_necessaria = calcForcaNecessaria(p, aliado, l, lugaresConquistados); //aqui aplica-se um  método parecido com o shortestPath do exercicio 1c
  19.                         if (!(lugaresConquistados.isEmpty())) { //o metodo em cima só preenche o minimo de lugares conquistados  se o aliado nao for dono de nenhum lugar intermédio
  20.                             if (forca_alianca > forca_necessaria && forca_necessaria > 0) {
  21.                                 if(l.getDono()!= null){
  22.                                     forca_necessaria += l.getDono().getnPontos();
  23.                                 }
  24.                                 return new Conquista(aliado, lugaresConquistados, forca_alianca, forca_necessaria);
  25.                             }
  26.                         }
  27.                     }
  28.                 }
  29.             }
  30.         }
  31.         return null;
  32.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement