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

Add função para pegar os filhos do grupo

parent 5c8263be
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -9,6 +9,7 @@ Lista Joga(Grafo g, Lista grupo){ ...@@ -9,6 +9,7 @@ Lista Joga(Grafo g, Lista grupo){
//TODO: A Logica toda do jogo vai ficar aqui //TODO: A Logica toda do jogo vai ficar aqui
// Pega os filhos do grupo // Pega os filhos do grupo
Lista filhos = filhosGrupo(grupo);
// Monta a árvore de busca: // Monta a árvore de busca:
// - RAIZ: grupo // - RAIZ: grupo
// - FILHOS: Cores alcancáveis a partir da raiz // - FILHOS: Cores alcancáveis a partir da raiz
...@@ -19,5 +20,20 @@ Lista Joga(Grafo g, Lista grupo){ ...@@ -19,5 +20,20 @@ Lista Joga(Grafo g, Lista grupo){
// - Em caso de empate da soma peso + bônus: // - Em caso de empate da soma peso + bônus:
// - Escolher o filho que tem mais netos da mesma cor de um filho // - Escolher o filho que tem mais netos da mesma cor de um filho
// Após escolher um filho, repete o algoritmo até não terem mais filhos do grupo // Após escolher um filho, repete o algoritmo até não terem mais filhos do grupo
// Limpa as coisas
destroiLista(filhos, NULL);
return constroiLista(); return constroiLista();
} }
Lista filhosGrupo(Lista l) {
Lista filhos = constroiLista();
for(No n = primeiroNoLista(l); n; n = getSucessorNo(n)) {
Vertice pai = (Vertice) getConteudo(n);
for(No m = primeiroNoLista(pai->filhos); m; m = getSucessorNo(m)) {
Vertice filho = (Vertice) getConteudo(m);
insereUnicoLista(filho, filhos);
}
}
return filhos;
}
#ifndef _PLAYER_ #ifndef _PLAYER_
#define _PLAYER_ #define _PLAYER_
#include <stdbool.h> #include <stdbool.h>
#include "vertice.h"
#include "grafo.h" #include "grafo.h"
#include "lista.h" #include "lista.h"
...@@ -8,4 +9,6 @@ ...@@ -8,4 +9,6 @@
// até consumir todos os vértices do grafo. Retorna a lista de jogadas // até consumir todos os vértices do grafo. Retorna a lista de jogadas
Lista Joga(Grafo g, Lista grupo); Lista Joga(Grafo g, Lista grupo);
// Retorna todos os filhos de uma lista de vértices
Lista filhosGrupo(Lista l);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment