Estou brincando com a escrita de um RPG tático muito ruim em C ++. Até agora, eu tenho um mapa em 2D e acabei de obter o algoritmo A * funcionando com base no pseudocódigo da wikipedia .
Mas RPGs táticos reais não apenas encontram o melhor caminho em um avião plano e se mudam para lá. Eles geralmente têm intervalos de movimento limitados e devem subir ou descer. Se você já jogou Final Fantasy Tactics, isso será afetado pelas estatísticas de Movimento e Salto. É aqui que eu me perco. Como altero o algoritmo A * para encontrar o melhor caminho em direção a um destino, mas o caminho tem apenas tantos blocos? Como devo levar em consideração as diferenças de altura e pular as estatísticas? Como faço para implementar pulando uma lacuna?
Se ajudar, agora meu mapa é representado por um objeto Vector of Tile. Cada bloco possui ponteiros para o bloco Norte, Sul, Leste e Oeste, que são definidos como nullptr se não existir nenhum bloco, como ao longo da borda do mapa ou se um bloco estiver definido como não passável.