From 347c044bcc15a3fb4fa11eb3d0dc52d30815576b Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Mon, 12 Jun 2017 10:27:08 -0300
Subject: [PATCH] =?UTF-8?q?Modifica=20raz=C3=A3o=20da=20profundidade?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 libs/jogador.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/libs/jogador.c b/libs/jogador.c
index d92e656..91ed395 100644
--- a/libs/jogador.c
+++ b/libs/jogador.c
@@ -17,7 +17,7 @@ Lista Joga(Grafo g, Lista grupo){
         int altura = calculaAltura(g, grupo);
 
         int naoConsumidos = tamanhoLista(g->vertices) - tamanhoLista(grupo);
-        int profundidade = (sqrt(max) * (sqrt(altura) / sqrt(min)) * (altura/sqrt(naoConsumidos)));
+        int profundidade = (sqrt(max) * (sqrt(altura) / sqrt(min)) * 1); //(altura/sqrt(naoConsumidos)));
 
         Lista filhos = filhosGrupo(grupo);
 
@@ -44,6 +44,10 @@ Lista Joga(Grafo g, Lista grupo){
             } else if((v->bonus) == (maior->bonus)) {
                 if(v->peso > maior->peso) {
                     maior = v;
+                } else if(v->peso == maior->peso) {
+                    if(v->cor < maior->cor) {
+                        maior = v;
+                    }
                 }
             }
         }
@@ -146,7 +150,7 @@ void calculaBonus(Lista grupo, Grafo g, int profundidade) {
             Vertice filho = (Vertice) getConteudo(m);
             if((filho->altura > v->altura)) {
                 int bonus = filho->peso + calculaBonusRec(filho, v, g, profundidade);
-                if(corEstaNaLista(grupo, filho->cor)) bonus += 100;
+                if(corEstaNaLista(grupo, filho->cor)) bonus += 50;
                 v->bonus += bonus;
             }
         }
@@ -169,7 +173,7 @@ void calculaBonus(Lista grupo, Grafo g, int profundidade) {
                 v->bonus += 150;
             }
         }
-        destroiLista(vFilhos, NULL);
+        destroiLista(vFilhos, destroiVertice);
 
         int menorDistancia = v->altura;
         for(No m = primeiroNoLista(g->vertices); m; m = getSucessorNo(m)) {
@@ -180,7 +184,6 @@ void calculaBonus(Lista grupo, Grafo g, int profundidade) {
                 if((w->altura < menorDistancia) || (menorDistancia == v->altura)) menorDistancia = w->altura;
             }
         }
-        v->bonus += (menorDistancia - v->altura)^2;
 
         for(No m = primeiroNoLista(v->pais); m; m = getSucessorNo(m)) {
             Vertice pai = (Vertice) getConteudo(m);
@@ -216,7 +219,6 @@ int calculaBonusRec(Vertice v, Vertice pai, Grafo g, int profundidade) {
         Vertice filho = (Vertice) getConteudo(n);
         if((filho->altura > v->altura)) {
             int preBonus = filho->peso + calculaBonusRec(filho, v, g, profundidade-1);
-            Lista fFilhos = agrupaCores(filho->filhos);
             bonus += preBonus;
         }
     }
-- 
GitLab