Bence bunu yanlış şekilde yapıyorsun. Döngüleri olan bir grafikteki maksimum yol teknik olarak tanımlanmamıştır çünkü döngü başlangıç ve bitiş arasında bulunuyorsa sonsuzdur. Muhtemelen maksimal yol tanımını genişletebileceğiniz / kısıtlayabileceğiniz akıllı yollar vardır, ancak buradaki en iyi yaklaşımın bu olduğunu düşünmüyorum.
Gerçek bir uzun yolu modellemeye çalışmıyorsunuz (örneğin bir haritadaki alanı mümkün olduğunca keşfetmeye çalışan bir robot). Sadece oyuncunun birçok odayı keşfetmesini sağlamaya çalışıyorsunuz.
Bu nedenle, oyuncunun çıkışı şu ana kadar keşfedilen haritanın yüzdesi ile orantılı bulma şansını yakalayın . Diyelim ki bir seviyede X odası var ve oyuncu karakteri Y'yi keşfetti. Karakter bir odaya girdiğinde, çıkışı f (Y, X) olasılığıyla oraya yerleştirin. F'nin önemsiz bir örneği (Y * Y) / (X * X) olabilir - örneğin 10 oda için, son odada% 100 şans, son odada yanında% 81 şans var - ve sadece bir İlk odada% 1 şans.
Oyunu doğru hissettirmek istediğinizde denklemi düzenleyebilirsiniz ve hatta oyuncuya oluşturma olasılığını arttırmak için bazı yetenekler verebilirsiniz. Önemli olan, karakter aslında odaya girene kadar çıkış üretmeyin. Bu yöntem ayrıca zindan üretme algoritması hakkında oyuncu bilgisine karşı da bağışık değildir; oyuncunun şövalyenin NetHack'teki zıplaması veya ışınlanma gibi garip hareket modelleri olsa bile, çıkışı bulmak için daha fazla oda keşfetmek zorunda kalacaklar.
Eğer varsa gereken statik çıkış oluşturmak, sanal bir karakter ile aynı fikri kullanabilirsiniz. Her yinelemede bir hücre hareket ederek karakterin konumundan başlayarak bir sel dolgusu düşünün. Doldurulacak son oda, çıkışın ait olduğu odadır (aslında, doldurulacak son hücre, oynatıcıdan en uzak olan hücredir). Bununla birlikte, bu durumda oyuncu çıkış hakkında daha fazla bilgiye sahiptir - eğer soldalarsa, büyük olasılıkla sağdadır - ve ışınlanabiliyorlarsa, oraya normal bir rastgele yürüyüşten daha hızlı ulaşabilirler.
Sonunda, çıkışın oyuncu karakterinden haritanın diğer tarafında ortaya çıktığı roguelike'yi bitirdim ve sonra rastgele dolaştım. Zindandaki bazı eşyalar, daha hızlı aç olmak pahasına harita üzerinde görünür kıldı. Herhangi bir analiz yapmadım, ama kesinlikle haritayı bulmak için daha fazla keşfetmek zorunda kaldım ve seviyelere benzersiz bir his verdi.