Gerçek dünya açısından: A'dan B'ye doğru yönelmiş ve kilitli bir şekilde D kapısını bulsaydınız, D anahtarını bulmanız gerektiğini fark edersiniz. Yani AI'nız tipik insan kadar bilmiyorsa , bu, kendi içinde küçük bir yol bulma adımları kümesi olan anahtarın keşfini içerecektir. Öte yandan, AI'nızın bir yol denemeden önce, o rotada kilitli bir kapı olduğunu bilmesini isteyebilirsiniz ve bu durumda muhtemelen anahtarı nerede bulacağını da bilir.
Her iki durumda da, sorun iki düzeyde bağlantılardan biridir. "Yerde" seviyesinde, her zaman bir bölünmemiş bölge içinde güvenli bir şekilde hareket edebileceğinizi biliyorsunuz ... kilitli kapılar tarafından bölünmemiş, yani. Bu, mevcut A * yol bulma uygulamanızı özgürce kullanabileceğiniz yerdir. (Basit bir örnekte, bir bölgeyi tek bir oda olarak görebilirsiniz. Kapının kilidini açmadan başka bir odaya gidemezsiniz. Gerçekte, zindanınızın tüm bir bölgesi olabilir.) ama biraz önce göz çevrenizle etrafta dolaşmak yerine etrafınızdaki bölgeyi incelemek yerine etrafta dolaşmak gibi bir şey. Veya bu durumda kilitli bir kapı. Bu nedenle A * cihazınızın üzerinde çalıştığı yer seviyesi haritalarınız, oynatıcıyı yalnızca geçerli bölge içindeki hareketle sınırlamalıdır.
Daha sonra, doğada topografik olandan daha topolojik olan daha yüksek seviye bir harita var. Engellerin yerdeki detaylarını gerçekten önemsemiyor ve bu yüzden sadece bölgeler arasındaki bağlantıyı önemsiyor. Bu topolojik harita, halihazırda aralarında kilitli bir kapıya sahip olan bölgeler arasındaki bağlantılara sahiptir, çünkü zindanınızdaki tüm bölgelerin ideal bağlantısını gösterir. Kenarlarında - her biri bölgeler arasındaki bir kapıyı temsil eder - eğer varsa, o kapıyı açmak için henüz gerekli olan anahtarı depolar, aksi takdirde açık olarak kabul edilir. Bu grafiği en kısa yol için ararken , arama çalışırken kenarlardaki verileri kontrol ederek bulunan yolu yalnızca açık olan yollarla sınırlamalıdır . Buradaki bağlantı açıklık değil, potansiyel açıklık anlamına gelir.
Ayrı bir bölgeye giren bir noktaya gitmek istediğinizde, önce bir yol bulmak için üst düzey haritanızda arama yaparsınız. (A * veya başka bir en kısa yol algoritması bu seviyede kullanılabilir.) Bir yol bulduğunuzda, bu daha yüksek seviyedeki harita, geçerli bölgenizden diğer bölgeye gitmek için hangi kapıyı kullanmanız gerektiği hakkında bilgi sağlamalıdır. Şimdi, yerel bölgede, o kapıya gitmek için yer seviyesinde AI yapabilirsiniz. Kapıya ulaşıldığında, karakteriniz o kapıdan / portaldan geçebilir. Şimdi B bölgesinde. Hedef bölge ise, tuşa gitmek için yer seviyesi navigasyonunu kullanabilir. Değilse, hedef bölgeye ulaşana kadar birinci adımı tekrarlamanız gerekir.
Aranan bir anahtarın kendisinin kilitli bir kapının arkasında olma olasılığı vardır ... ve o kapının anahtarı da benzer şekilde ... ve böylece nauseum'da. Bu aslında bir bağımlılık çözümleme sorunudur ve bununla başa çıkmanın birkaç yolu vardır, bunlardan biri Petri Nets'dir. Bu mükemmel kağıda bakın .
PS. Zindanınızı prosedürel olarak oluşturuyorsanız, o zaman yaptığınız gibi, oyuncunun başlangıç pozisyonunu zaten biliyor olmanız koşuluyla, bağımlılık sıralaması hakkında bilgi depolayabilirsiniz.