int calculaHeuristica(Tabuleiro *p,int minimax){
int i, j, valor, z, soma;
//1 é max
//2 é min
if(verificaVitoria(p)==minimax && minimax==1) return 9999;
if(verificaVitoria(p)==minimax && minimax==2) return -9999;
valor = 0;
for(i=0;i<7;i++){
for(j=0;j<10;j++){
if(j<=6){
soma =0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i][j+1]==minimax && z==0){
soma++;
}else if(p->tab[i][j+1]!=minimax && p->tab[i][j+1]!=0){
z++;
}
if(p->tab[i][j+2]==minimax && z==0){
soma++;
}else if(p->tab[i][j+2]!=minimax && p->tab[i][j+2]!=0){
z++;
}
if(p->tab[i][j+3]==minimax && z==0){
soma++;
}else if(p->tab[i][j+3]!=minimax && p->tab[i][j+3]!=0){
z++;
}
if(z==0){
valor = valor+soma;
//printf("hor - %d %d %d\n", valor, i, j);
}
}
if(i<=3){
soma = 0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i+1][j]==minimax && z==0){
soma++;
}else if(p->tab[i+1][j]!=minimax && p->tab[i+1][j]!=0){
z++;
}
if(p->tab[i+2][j]==minimax && z==0){
soma++;
}else if(p->tab[i+2][j]!=minimax && p->tab[i+2][j]!=0){
z++;
}
if(p->tab[i+3][j]==minimax && z==0){
soma++;
}else if(p->tab[i+3][j]!=minimax && p->tab[i+3][j]!=0){
z++;
}
if(z==0){
//printf("vert - %d %d %d\n", valor, i, j);
valor = valor+soma;
}
}
if(i-4>=0 && j+4<=9){
soma =0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i-1][j+1]==minimax && z==0){
soma++;
}else if(p->tab[i-1][j+1]!=minimax && p->tab[i-1][j+1]!=0){
z++;
}
if(p->tab[i-2][j+2]==minimax && z==0){
soma++;
}else if(p->tab[i-2][j+2]!=minimax && p->tab[i-2][j+2]!=0){
z++;
}
if(p->tab[i-3][j+3]==minimax && z==0){
soma++;
}else if(p->tab[i-3][j+3]!=minimax && p->tab[i-3][j+3]!=0){
z++;
}
if(z==0){
//printf("sup dir - %d %d %d\n", valor, i, j);
valor = valor+soma;
}
}
if(i-4>=0 && j-4>=0){
soma =0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i-1][j-1]==minimax && z==0){
soma++;
}else if(p->tab[i-1][j-1]!=minimax && p->tab[i-1][j-1]!=0){
z++;
}
if(p->tab[i-2][j-2]==minimax && z==0){
soma++;
}else if(p->tab[i-2][j-2]!=minimax && p->tab[i-2][j-2]!=0){
z++;
}
if(p->tab[i-3][j-3]==minimax && z==0){
soma++;
}else if(p->tab[i-3][j-3]!=minimax && p->tab[i-3][j-3]!=0){
z++;
}
if(z==0){
//printf("sup esq - %d %d %d\n", valor, i, j);
valor = valor+soma;
}
}
/*if(i+4<=7 && j-4>=0){
soma =0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i+1][j-1]==minimax && z==0){
soma++;
}else if(p->tab[i+1][j-1]!=minimax && p->tab[i+1][j-1]!=0){
z++;
}
if(p->tab[i+2][j-2]==minimax && z==0){
soma++;
}else if(p->tab[i+2][j-2]!=minimax && p->tab[i+2][j-2]!=0){
z++;
}
if(p->tab[i+3][j-3]==minimax && z==0){
soma++;
}else if(p->tab[i+3][j-3]!=minimax && p->tab[i+3][j-3]!=0){
z++;
}
if(z==0){
printf("inf esq - %d %d %d\n", valor, i, j);
valor = valor+soma;
}
}
if(i+4<=7 && j+4<=9){
soma =0;
z=0;
if(p->tab[i][j]==minimax && z==0){
soma++;
}else if(p->tab[i][j]!=minimax && p->tab[i][j]!=0){
z++;
}
if(p->tab[i+1][j+1]==minimax && z==0){
soma++;
}else if(p->tab[i+1][j+1]!=minimax && p->tab[i+1][j+1]!=0){
z++;
}
if(p->tab[i+2][j+2]==minimax && z==0){
soma++;
}else if(p->tab[i+2][j+2]!=minimax && p->tab[i+2][j+2]!=0){
z++;
}
if(p->tab[i+3][j+3]==minimax && z==0){
soma++;
}else if(p->tab[i+3][j+3]!=minimax && p->tab[i+3][j+3]!=0){
z++;
}
if(z==0){
printf("Inf dir - %d %d %d\n", valor, i, j);
valor = valor+soma;
}
}*/
}
}
if(minimax==2) return -valor;
return valor;
}