From b3c9f7851281efdd232f2f1a2b631e3813ab0248 Mon Sep 17 00:00:00 2001
From: Vytor Calixto <vytorcalixto@gmail.com>
Date: Sun, 4 Jun 2017 23:27:34 -0300
Subject: [PATCH] =?UTF-8?q?Altera=20cabe=C3=A7alho=20da=20fun=C3=A7=C3=A3o?=
 =?UTF-8?q?=20calculaBonus?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 libs/jogador.c    | 26 +++++++++++++-------------
 libs/jogador.h    |  2 +-
 tests/runTests.sh |  2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/libs/jogador.c b/libs/jogador.c
index eb15333..00d83b3 100644
--- a/libs/jogador.c
+++ b/libs/jogador.c
@@ -11,6 +11,7 @@ Lista Joga(Grafo g, Lista grupo){
     //TODO: A Logica toda do jogo vai ficar aqui
     int counter = 1;
     while(tamanhoLista(grupo) < tamanhoLista(g->vertices)) {
+        int altura = calculaAltura(g, grupo);
         // Pega os filhos do grupo
         Lista filhos = filhosGrupo(grupo);
         // Monta a árvore de busca:
@@ -18,7 +19,6 @@ Lista Joga(Grafo g, Lista grupo){
         //      - FILHOS: Cores alcancáveis a partir da raiz
         //      - NETOS: Cores alcançáveis a partir dos filhos que NÃO são alcançáveis a partir da raiz
         //          Só é necessário para calcular o bônus de cada filho
-        int altura = calculaAltura(g, grupo);
         // printf("\tJOGADA %d\n", counter);
         Lista coresFilhos = agrupaCores(filhos, g, altura, tamanhoLista(g->vertices) - tamanhoLista(grupo));
         // printf("\tAltura da árvore: %d\n", altura);
@@ -65,14 +65,14 @@ Lista Joga(Grafo g, Lista grupo){
 
         calculaAltura(g, grupo);
         // PARA DEBUG!! Imprime as últimas 10 jogadas em um arquivo
-         char str[32];
-         sprintf(str, "./jogada%d.out", counter );
-         FILE* debug = fopen(str, "w+");
-         if(debug) {
-             grafoParaDot(g, grupo, debug);
-         }
-         fclose(debug);
-         ++counter;
+        // char str[32];
+        // sprintf(str, "./jogada%d.out", counter );
+        // FILE* debug = fopen(str, "w+");
+        // if(debug) {
+        //     grafoParaDot(g, grupo, debug);
+        // }
+        // fclose(debug);
+        ++counter;
     }
 
     return jogadas;
@@ -84,7 +84,7 @@ Lista filhosGrupo(Lista grupoPai) {
         Vertice pai = (Vertice) getConteudo(n);
         for(No m = primeiroNoLista(pai->filhos); m; m = getSucessorNo(m)) {
             Vertice filho = (Vertice) getConteudo(m);
-            if(!filho->grupo) {
+            if(!filho->grupo && filho->altura > pai->altura) {
                 insereUnicoLista(filho, filhos);
             }
         }
@@ -146,12 +146,12 @@ Lista agrupaCores(Lista filhos, Grafo g, int altura, int naoConsumidos) {
     return agrupa;
 }
 
-int calculaBonus(Vertice v, Lista filhos, int profundidade) {
+int calculaBonus(Vertice v, Lista irmaos, int profundidade) {
     int bonus = 0;
     for(No n = primeiroNoLista(v->filhos); n; n = getSucessorNo(n)) {
         Vertice filho = (Vertice) getConteudo(n);
-        // Se o filho não está na lista filhos e não está no grupo de vértices já consumidos
-        if(!filho->grupo && !pertenceLista(filho, filhos)) {
+        // Se o filho não está na lista irmaos e não está no grupo de vértices já consumidos
+        if(!filho->grupo && !pertenceLista(filho, irmaos)) {
             bonus += filho->peso + calculaBonusRec(filho, v, profundidade);
         }
     }
diff --git a/libs/jogador.h b/libs/jogador.h
index b3d0b39..5ec0b20 100644
--- a/libs/jogador.h
+++ b/libs/jogador.h
@@ -15,5 +15,5 @@ Lista filhosGrupo(Lista grupoPai);
 // Retorna uma lista de vértices com as cores e pesos agrupadas a partir de l
 Lista agrupaCores(Lista filhos, Grafo g, int altura, int naoConsumidos);
 
-int calculaBonus(Vertice v, Lista filhos, int profundidade);
+int calculaBonus(Vertice v, Lista irmaos, int profundidade);
 #endif
diff --git a/tests/runTests.sh b/tests/runTests.sh
index 5dbf175..ca61958 100755
--- a/tests/runTests.sh
+++ b/tests/runTests.sh
@@ -4,7 +4,7 @@
 tempo_max=120000 #120s
 
 # tamanhos do tabuleiro
-tams=(2 3 4 8 16 32)
+tams=(3 4 8 16 32)
 
 # lista de cores
 cores=(4 8 10 16)
-- 
GitLab