E sem demora.
Vamos voltar à programação da parte cinco deste código.
Vamos voltar para encontrar caminhos.
Portanto, temos aqui nosso novo bloco de caminhos.
E por isso vou receber as mensagens de texto que estão anexadas a esse objeto.
Portanto, chamemos isso de valores iguais a um bloco de caminho.
Obtenha componentes em crianças e você quer aquele com o S nele, de modo que você receba múltiplos componentes.
E nós queremos receber nosso texto.
Malha.
Crianças.
E então você os receberá na ordem em que eles entrarem.
Portanto, o primeiro é G, o próximo é H, e o seguinte é F, uma vez que eles estão anexados àquele pré-fabricado
em particular.
Assim, podemos ir a valores iguais a zero ponto de texto e depois apenas colocar algum texto lá.
Vou colocar um G como esse.
Mais G para cordelar com um pouco de formatação para não ficarmos com algo ridículo com muitas
casas decimais como essa.
E depois só precisamos disto para o H e o F, então vamos colar isso mais duas vezes.
Vá para o valor um para o H e dois para o F e este é H, este é F e depois este é H e este é F, quase terminando
o interior deste outono.
A última coisa que precisamos fazer é adicionar o marcador à nossa lista aberta.
Mas antes disso, temos que ter certeza de que não existe já por causa disso.
Queremos apenas atualizar seus valores.
Portanto, pode já estar na lista aberta.
E então estamos olhando para isso de um ponto de vista diferente.
Assim, a partir de um nó diferente torna-se o vizinho desse nó, ainda precisamos atualizar os valores g, h e F.
Por isso, vou criar um novo método para fazer isso.
E mais uma vez, vamos colocá-lo em busca.
Desça aqui, puxe.
Marcador de atualização.
Localização do mapa posar flutuar g.
Flutuador h.
Flutuar se e depois caminho.
Marco.
E dentro daqui para cada um.
Marcador de caminho p em aberto se p ponto de localização p for igual a pausa, então estamos falando do mesmo marcador de caminho.
E então dentro daqui podemos apenas atualizar seu valor.
Então p g é igual a g, p h é igual a h e p ponto f é igual a f.
Certo.
Portanto, isto só precisa ser consertado.
P ponto.
H e depois F e, em seguida, também precisamos colocar o pai desse marcador no nó em que estamos trabalhando atualmente.
Então P ponto pai é igual a l variável pai pela qual passamos, então podemos retornar verdadeiro dizendo sim, já lidamos
com isso.
Caso contrário, olhamos para todo o lado por aqui.
Não o encontramos para que possamos retornar falso e depois lidar com ele de volta no outro código.
Portanto, vamos voltar à nossa busca, onde agora usaremos este marcador de atualização.
E aqui vamos colocar se.
Não atualizar o marcador.
Passando pelo vizinho, o valor g, o valor h e o valor F e depois o nó.
Portanto, este nó que se tornará então seu pai, de outra forma aberto, acrescenta um novo marcador de caminho.
Vizinho g h se.
Bloqueio de Puff e este nódulo.
Certo.
Phew.
Um monte de código.
Estamos quase terminando.
Estamos quase onde podemos realmente testá-la, mas ainda não exatamente.
Por isso, percorremos todos esses vizinhos e calculamos seus valores FG e F e os colocamos essencialmente
na lista aberta.
O que faremos a seguir?
Bem, temos que escolher um que vai se tornar o próximo nó em que estamos nos concentrando.
Então a posição que vai gerar o novo lote de vizinhos, o que determina aquele que foi escolhido?
Então, qual da lista aberta recebemos?
Bem, é o que tem o valor F mais baixo.
Portanto, a maneira mais fácil de fazer isso é reordenar sua lista aberta dos menores para os maiores valores F.
E podemos usar a biblioteca de links para fazer isso.
Assim, definimos nossa lista aberta para igualar nossa lista aberta de pontos ordenados ou ordenados por e estamos ordenando por
um valor que é de p f, que é basicamente o que diz.
E então o ponto volta a ser uma lista para lista de marcadores de caminho.
Agora estou voltando a esta linha no código que eu sei que você acabou de digitar, mas para
mim é como se estivesse um pouco abaixo da linha e eu só quero que você saiba o que está acontecendo
com esta ordem, enquanto isto vai funcionar, imagine que você tem todos estes nós abertos e os ordenou
pelo valor F e há vários deles sentados no topo e todos eles têm o mesmo valor f.
Então qual desses você escolhe?
Bem, faz mais sentido se então escolhermos aquele que tem o maior valor h.
Portanto, o que vamos fazer neste caso é fazer outra ordem dentro deste pedido e o fazemos
usando um ponto.
Então, por enquanto, isto é apenas parte de nossa biblioteca de links para poder fazer isto e vamos
colocar n igual a n ponto h e que depois será ordenado por F e depois dentro de todos os F do mesmo, ele os ordenará em segundo
lugar por H e isso melhorará este algoritmo.
Agora, vou voltar à versão anterior do código que vocês verão dentro de momentos, porque
a partir de então continuei digitando.
Mas lembre-se, sempre que você vir esta linha no código a partir de agora, então precisamos
ter isto, então compre ali em vez da minha versão antiga.
Certo?
Isso está feito.
Em seguida, podemos selecionar o que está no topo dessa lista, pois será aquele com o menor
f k.
Portanto, marcador de caminho.
PM.
Igual a marcador de caminho.
Ponto da lista aberta.
Elemento na posição zero.
Portanto, o que está no topo, vamos fazer isso em um colchete.
Ok, então podemos fechar esse marcador de caminho.
Portanto, estamos tirando-o da lista aberta e colocando-o na lista fechada.
Tão fechado não acrescente um marcador de caminho como esse.
Certo?
Por isso, fizemos isso, fechamos e, portanto, precisamos retirá-lo da lista aberta.
Agora lembre-se, ele está no topo da lista aberta para que possamos ir abrir remover a zero.
Assim, tirá-lo de um e colocá-lo no outro.
E, ao mesmo tempo, vamos também ajustar seu material para aquela cor vermelha que selecionamos para fechar.
Então, o ponto marcador de ponto da pm ganha componente.
O material do fornecedor é igual ao material fechado.
Por último, mas não menos importante, agora precisamos definir nossa última posição, que inicialmente era o início.
Se você se lembra, última pausa.
O nó que será executado em seguida é igual ao nosso marcador de caminho com o F mais baixo,
de modo que da próxima vez que entrarmos aqui, este nó será colocado aqui até este último nó.
Ok, eu acho que estamos realmente prontos para executar isto.
Portanto, vamos descer em nossa atualização.
O que vamos fazer aqui em baixo é usar uma chave diferente para passar através de nossa estrela.
Por isso, se o ponto de entrada de dados for descartado, usarei C não por nenhuma razão em particular, exceto que s é normalmente usado para navegação.
Portanto, vou apenas escolher uma chave e depois vamos fazer uma busca e vamos passar
pela última pausa, que no início será o primeiro nó.
Agora, se você não pressionar P antes de pressionar C, então você vai acabar com um pouco de erro, porque a última
pausa será realmente nula.
Portanto, só para superar essa questão, se você entrar em sua busca, o que você quer fazer é apenas colocar esta
linha de código aqui para garantir que a pressão C não fará absolutamente nada.
Se você não tiver pressionado P primeiro e nós voltaremos e experimentaremos isto no próximo vídeo.