Sto scherzando con la scrittura di un gioco di ruolo tattico davvero scadente in C ++. Finora ho una mappa di tessere 2D e ho appena fatto funzionare l'algoritmo A * basato sullo pseudocodice in Wikipedia .
Ma i veri giochi di ruolo tattici non solo trovano il percorso migliore su un piano piatto e si spostano lì. Di solito hanno intervalli di movimento limitati e devono salire o scendere. Se hai mai giocato a Final Fantasy Tactics, queste sarebbero influenzate dalle statistiche Move e Jump. Questo è dove mi perdo. Come posso modificare l'algoritmo A * in modo che trovi il percorso migliore verso un bersaglio, ma il percorso è lungo solo un numero di tessere? Come devo prendere in considerazione le differenze di altezza e saltare le statistiche? Come posso implementare saltare un gap?
Se aiuta, in questo momento la mia mappa è rappresentata da un vettore di oggetti Tile. Ogni riquadro ha puntatori al riquadro Nord, Sud, Est e Ovest, che sono impostati su nullptr se non esiste alcun riquadro, ad esempio lungo il bordo della mappa o se un riquadro è impostato su non passabile.