Penso che lo farai nel modo sbagliato. Il percorso massimo in un grafico con cicli è tecnicamente indefinito perché è infinito se il ciclo si trova tra l'inizio e la fine. Probabilmente ci sono modi intelligenti per estendere / limitare la definizione del percorso massimo, ma non penso che sia l'approccio migliore qui.
Non stai cercando di modellare un percorso lungo reale (ad esempio un robot che cerca di esplorare quanta più area possibile in una mappa). Stai solo cercando di convincere il giocatore a esplorare molte stanze.
Quindi, fai in modo che il giocatore trovi l'uscita proporzionale alla percentuale della mappa esplorata finora . Supponiamo che ci siano X stanze su un livello e che il personaggio del giocatore abbia esplorato Y. La prossima volta che il personaggio entra in una stanza, posiziona l'uscita lì con probabilità f (Y, X). Un banale esempio di f potrebbe essere (Y * Y) / (X * X) - ad es. Per 10 camere, c'è una probabilità del 100% l'uscita nell'ultima stanza, l'81% delle probabilità è nell'ultima stanza - e solo un Probabilità dell'1% nella prima stanza.
Puoi modificare l'equazione nel modo desiderato per far sembrare il gioco giusto, e forse anche dare al giocatore alcune abilità per renderlo più probabile da generare. La parte fondamentale è, non generare l'uscita fino a quando il personaggio non entra nella stanza. Questo metodo è anche immune alla conoscenza da parte dei giocatori dell'algoritmo di generazione del dungeon; anche se il giocatore ha strani schemi di movimento come il salto del cavaliere in NetHack o il teletrasporto, dovranno esplorare più stanze per trovare l'uscita.
Se devi generare staticamente l'uscita, puoi usare la stessa idea con un personaggio virtuale. Immagina un riempimento inondazione a partire dalla posizione del personaggio, muovendosi una volta ogni cella per ogni iterazione. L'ultima stanza da riempire è la stanza a cui appartiene l'uscita (in effetti, l'ultima cella da riempire è la cella in cui è più lontana dal giocatore). Tuttavia, in questo caso il giocatore ha più informazioni sull'uscita - se sono sulla sinistra, molto probabilmente sulla destra - e se possono teletrasportarsi, potrebbero effettivamente arrivare più velocemente di una normale passeggiata casuale.
Alla fine, ho appena finito un roguelike in cui l'uscita è stata generata dall'altro lato della mappa dal personaggio del giocatore, e poi ho vagato a caso. Alcuni oggetti nel sotterraneo lo hanno reso visibile sulla mappa, a scapito di avere fame più velocemente. Non ho fatto alcuna analisi, ma mi è sembrato di dover esplorare più della mappa per trovarla e ha dato ai livelli un aspetto unico.