Estoy jugando con escribir un RPG táctico realmente pobre en C ++. Hasta ahora tengo un mapa de mosaico 2D y acabo de hacer funcionar el algoritmo A * basado en el pseudocódigo de la wikipedia .
Pero los juegos de rol tácticos reales no solo encuentran el mejor camino en un avión plano y se mueven allí. Normalmente tienen rangos de movimiento limitados y deben subir o bajar. Si alguna vez jugaste a Final Fantasy Tactics, estas se verían afectadas por las estadísticas Move and Jump. Aquí es donde me pierdo. ¿Cómo modifico el algoritmo A * para que encuentre la mejor ruta hacia un objetivo, pero la ruta solo tiene unas pocas fichas? ¿Cómo debo tener en cuenta las diferencias de altura y las estadísticas de salto? ¿Cómo implemento saltar sobre una brecha?
Si ayuda, en este momento mi mapa está representado por un Vector de objetos de mosaico. Cada mosaico tiene punteros a los mosaicos Norte, Sur, Este y Oeste, que se configuran en nullptr si no existe ningún mosaico allí, como a lo largo del borde del mapa o si un mosaico se configura como no transitable.