Je pense que vous vous y trompez. Le chemin maximal dans un graphique avec des cycles est techniquement indéfini car il est infini si le cycle se situe entre le début et la fin. Il existe probablement des moyens intelligents pour étendre / restreindre la définition du chemin maximal, mais je ne pense pas que ce soit la meilleure approche ici.
Vous n'essayez pas de modéliser un long chemin réel (par exemple, un robot essayant d'explorer autant de zone que possible sur une carte). Vous essayez simplement d'amener le joueur à explorer de nombreuses pièces.
Alors, faites en sorte que le joueur trouve la sortie proportionnelle au pourcentage de la carte explorée jusqu'à présent . Supposons qu'il y ait X pièces à un niveau et que le personnage joueur ait exploré Y. La prochaine fois que le personnage entre dans une pièce, placez-y la sortie avec une probabilité f (Y, X). Un exemple trivial de f pourrait être (Y * Y) / (X * X) - par exemple, pour 10 chambres, il y a 100% de chances que la sortie dans la dernière salle, 81% de chances qu'elle se trouve dans l'avant-dernière salle - et seulement un 1% de chance que ce soit dans la première salle.
Vous pouvez modifier l'équation comme vous le souhaitez pour que le jeu se sente bien, et peut-être même donner au joueur certaines capacités pour le rendre plus susceptible de générer. L'essentiel est de ne pas générer la sortie tant que le personnage n'est pas réellement entré dans la pièce. Cette méthode est également à l'abri des connaissances des joueurs sur l'algorithme de génération de donjon; même si le joueur a d'étranges schémas de mouvement comme le saut du chevalier dans NetHack ou la téléportation, il devra explorer plus de pièces pour trouver la sortie.
Si vous devez générer statiquement l'exit, vous pouvez utiliser la même idée avec un personnage virtuel. Imaginez un remplissage à partir de la position du personnage, se déplaçant une fois à chaque itération. La dernière pièce à remplir est la pièce à laquelle appartient la sortie (en fait, la dernière cellule à remplir est la cellule où elle est la plus éloignée du joueur). Cependant, dans ce cas, le joueur a plus d'informations sur la sortie - s'il est à gauche, c'est probablement à droite - et s'il peut se téléporter, il pourra peut-être y arriver plus rapidement qu'une marche aléatoire normale.
Enfin, je viens de terminer un roguelike où la sortie est apparue de l'autre côté de la carte du personnage du joueur, puis j'ai erré au hasard. Certains objets du donjon le rendaient visible sur la carte, au détriment de la faim plus rapide. Je n'ai fait aucune analyse, mais j'avais vraiment l'impression que je devais explorer davantage la carte pour la trouver, et cela donnait aux niveaux une sensation unique.