Miklix

Büyüyen Ağaç Algoritması Labirent Oluşturucu

Yayınlandı: 16 Şubat 2025 21:37:23 UTC
Son güncelleme: 6 Mart 2025 09:57:07 UTC

Mükemmel bir labirent oluşturmak için Büyüyen Ağaç algoritmasını kullanan labirent oluşturucu. Bu algoritma, Hunt and Kill algoritmasına benzer labirentler üretme eğilimindedir, ancak biraz farklı tipik bir çözümle.

Bu sayfa, mümkün olduğunca çok kişi tarafından erişilebilir olması amacıyla İngilizce'den makine çevirisiyle çevrilmiştir. Ne yazık ki, makine çevirisi henüz mükemmelleştirilmiş bir teknoloji değildir, bu nedenle hatalar meydana gelebilir. Tercih ederseniz, orijinal İngilizce versiyonu buradan görüntüleyebilirsiniz:

Growing Tree Algorithm Maze Generator

Büyüyen Ağaç algoritması ilginçtir, çünkü nesil sırasında bir sonraki hücrenin nasıl seçildiğine bağlı olarak diğer birkaç algoritmanın davranışını taklit edebilir. Bu sayfadaki uygulama genişlik öncelikli, kuyruk benzeri bir yaklaşım kullanır.

Mükemmel bir labirent, labirentteki herhangi bir noktadan diğer herhangi bir noktaya tam olarak tek bir yolun olduğu bir labirenttir. Bu, daireler çizerek ilerleyemeyeceğiniz, ancak sık sık çıkmaz sokaklarla karşılaşacağınız ve sizi geri dönmeye zorlayacağınız anlamına gelir.

Burada oluşturulan labirent haritaları, herhangi bir başlangıç ve bitiş konumu olmayan varsayılan bir sürüm içerir, böylece bunlara kendiniz karar verebilirsiniz: labirentin herhangi bir noktasından başka bir noktaya bir çözüm olacaktır. İlham almak isterseniz, önerilen bir başlangıç ve bitiş konumunu etkinleştirebilir ve hatta ikisi arasındaki çözümü görebilirsiniz.


Yeni labirent oluşturun








Büyüyen Ağaç Algoritması Hakkında

Büyüyen Ağaç algoritması, mükemmel labirentler üretmek için esnek ve güçlü bir yöntemdir. Algoritma ilginçtir çünkü Prim'in algoritması, yinelemeli geri izleme ve yinelemeli bölme gibi diğer birkaç labirent oluşturma algoritmasının davranışını, işlenecek bir sonraki hücreyi nasıl seçtiğinize bağlı olarak taklit edebilir.

Büyüyen Ağaç Algoritması Nasıl Çalışır

Adım 1: Başlatma

  • Ziyaret edilmemiş hücrelerden oluşan bir ızgarayla başlayın.
  • Rastgele bir başlangıç hücresi seçin ve onu bir listeye ekleyin.

Adım 2: Labirent Oluşturma Döngüsü

  • Hücre listesi boş değilken:
    • Belirli bir stratejiye (aşağıda açıklanmıştır) göre listeden bir hücre seçin.
    • Seçili hücreden ziyaret edilmemiş komşularından birine (rastgele seçilmiş) bir geçit kazın.
    • Komşunuzu da listeye ekleyin, artık labirentin bir parçası.
    • Seçili hücrenin ziyaret edilmemiş komşusu yoksa, hücreyi listeden kaldırın.

Adım 3: Sonlandırma

  • Listede hücre kalmadığında algoritma sonlanır, yani labirentin tamamı oyulmuş olur.

Hücre Seçim Stratejileri (Algoritmanın Esnekliği)

Growing Tree algoritmasının tanımlayıcı özelliği, bir sonraki adımda hangi hücreyi işleyeceğinize nasıl karar verdiğinizdir. Bu seçim, labirentin görünümünü önemli ölçüde etkiler:

En Yeni Hücre (Yığın Benzeri Davranış) – Özyinelemeli Geri İzleme:

  • Her zaman en son eklenen hücreyi seç.
  • Uzun, dolambaçlı ve çok sayıda çıkmazı olan koridorlar oluşturur (derinlemesine arama labirenti gibi).
  • Labirentler genellikle uzun geçitlere sahiptir ve çözülmesi kolaydır.

Rastgele Hücre (Rastgele Prim Algoritması):

  • Her seferinde listeden rastgele bir hücre seçin.
  • Karmaşık ve karmaşık yollardan oluşan, daha eşit dağıtılmış bir labirent oluşturur.
  • Daha az uzun koridor ve daha fazla dallanma.

En Eski Hücre (Kuyruk Benzeri Davranış):

  • Listedeki her zaman en eski hücreyi seçin.
  • Genişlik öncelikli arama örüntüsüne benzer şekilde daha düzgün yayılımlı labirentler oluşturur.
  • Kısa, yoğun bağlantılara sahip çalılıklı geçitler.
  • (Burada uygulanan versiyon budur)

Hibrit Yaklaşımlar:

Çeşitli labirent özellikleri için stratejileri birleştirin. Örneğin:

  • %90 en yeni, %10 rastgele: Çoğunlukla tekrarlayan bir geri izleme labirentine benziyor, ancak ara sıra uzun koridorları bölen dallar da var.
  • %50 en yeni, %50 en eski: Uzun koridorları gür bitki örtüsüyle dengeler.

Bluesky'de paylaşFacebook'ta paylaşLinkedIn'de paylaşTumblr'da paylaşX'te paylaşLinkedIn'de paylaşPinterest'e Pinleyin

Mikkel Bang Christensen

Yazar Hakkında

Mikkel Bang Christensen
Mikkel miklix.com'un yaratıcısı ve sahibidir. Profesyonel bilgisayar programcısı/yazılım geliştiricisi olarak 20 yılı aşkın deneyime sahiptir ve şu anda büyük bir Avrupa BT şirketinde tam zamanlı olarak çalışmaktadır. Blog yazmadığı zamanlarda, boş zamanlarını çok çeşitli ilgi alanları, hobiler ve aktivitelerle geçirmektedir ve bu da bir dereceye kadar bu web sitesinde kapsanan konuların çeşitliliğine yansıyabilir.