Skip to content
Snippets Groups Projects
Commit 347c044b authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Modifica razão da profundidade

parent fdd94843
No related branches found
No related tags found
1 merge request!2Altura
......@@ -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;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment