Myślę, że podchodzisz do tego niewłaściwie. Maksymalna ścieżka na wykresie z cyklami jest technicznie niezdefiniowana, ponieważ jest nieskończona, jeśli cykl leży między początkiem a końcem. Prawdopodobnie istnieją sprytne sposoby na rozszerzenie / ograniczenie definicji maksymalnej ścieżki, ale nie sądzę, że jest to najlepsze podejście tutaj.
Nie próbujesz modelować rzeczywistej długiej ścieżki (np. Robot próbuje eksplorować jak najwięcej obszaru na mapie). Próbujesz tylko zmusić gracza do eksploracji wielu pokoi.
Więc, dokonać szansę gracz znajdzie wyjście proporcjonalne do procentu mapie zbadane dotychczas . Załóżmy, że na poziomie jest X pokoi, a postać gracza zbadała Y. Następnym razem postać wejdzie do pokoju, umieść tam wyjście z prawdopodobieństwem f (Y, X). Trywialnym przykładem f może być (Y * Y) / (X * X) - np. Dla 10 pokoi istnieje 100% szansy na wyjście z ostatniego pokoju, 81% szansy, że znajdzie się w przedostatnim pokoju - i tylko 1% szansy, że jest w pierwszym pokoju.
Możesz dostosować równanie, jednak chcesz, aby gra była w porządku, a może nawet dać graczowi pewne umiejętności, aby zwiększyć prawdopodobieństwo jego wygenerowania. Kluczowe jest to, że nie generuj wyjścia, dopóki postać nie wejdzie do pokoju. Ta metoda jest również odporna na znajomość algorytmu generowania lochów; nawet jeśli gracz ma dziwne wzorce ruchu, takie jak skok rycerza w NetHacku lub teleportacja, będzie musiał zbadać więcej pokoi, aby znaleźć wyjście.
Jeśli musisz statycznie wygenerować wyjście, możesz użyć tego samego pomysłu z wirtualną postacią. Wyobraź sobie wypełnienie zalewowe, zaczynające się od pozycji postaci, przesuwające się po komórce w każdej iteracji. Ostatnie pomieszczenie do wypełnienia to pomieszczenie, do którego należy wyjście (w rzeczywistości ostatnia komórka do wypełnienia to komórka, w której znajduje się ona najdalej od gracza). Jednak w tym przypadku gracz ma więcej informacji o wyjściu - jeśli jest po lewej, najprawdopodobniej po prawej - i jeśli mogą się teleportować, mogą faktycznie być w stanie dotrzeć tam szybciej niż normalny losowy spacer.
W końcu właśnie skończyłem roguelike, w którym wyjście pojawiło się po drugiej stronie mapy od postaci gracza, a następnie wędrowałem losowo. Niektóre przedmioty w lochach czyniły go widocznym na mapie, kosztem szybszego głodu. Nie przeprowadziłem żadnej analizy, ale zdecydowanie czułem, że muszę odkryć więcej mapy, aby ją znaleźć, a to nadało poziomom wyjątkowy charakter.