Miklix

Eller Algoritması Labirent Oluşturucu

Yayınlandı: 16 Şubat 2025 20:07:19 UTC
Son güncelleme: 12 Ocak 2026 09:04:16 UTC

Eller algoritmasını kullanarak mükemmel bir labirent oluşturan labirent jeneratörü. Bu algoritma ilginçtir çünkü bellekte yalnızca mevcut satırı (tüm labirenti değil) tutmayı gerektirir, bu nedenle çok sınırlı sistemlerde bile çok büyük labirentler oluşturmak için kullanılabilir.

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:

Eller's Algorithm Maze Generator

Eller algoritması, satır satır yaklaşım kullanarak mükemmel labirentler (döngü içermeyen ve herhangi iki nokta arasında tek bir yol bulunan labirentler) üreten verimli bir labirent oluşturma algoritmasıdır. Kruskal algoritmasına benzer labirentler üretir, ancak bunu tüm labirenti bellekte saklamaya gerek kalmadan, her seferinde yalnızca bir satır üreterek yapar. Bu da onu çok sınırlı sistemlerde çok büyük labirentler oluşturmak ve prosedürel içerik üretimi için kullanışlı hale getirir.

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








Eller Algoritması Hakkında

Eller algoritması David Eller tarafından tanıtılmıştır.

Algoritma, labirent oluşturmada satır satır verimli yaklaşımıyla dikkat çekiyor ve bu da onu sonsuz labirentler veya gerçek zamanlı olarak oluşturulan labirentler için ideal kılıyor. Genellikle prosedürel içerik oluşturma ve labirent oluşturma literatüründe yer alıyor, ancak orijinal yayınını detaylandıran birincil kaynaklar bulamadım.

Eller'in Labirent Oluşturma Algoritması Nasıl Çalışır?

Eller algoritması, bağlantılı hücre kümelerini koruyup değiştirerek, her seferinde bir satırı işler. Döngülerden kaçınarak bağlantıyı sağlar ve labirenti verimli bir şekilde aşağı doğru genişletir.

Teorik olarak sonsuz labirentler oluşturmak için kullanılabilir, ancak oluşturulan labirentin gerçekten çözülebilir olduğundan emin olmak için, labirenti tamamlamak üzere bir noktada "son satır" mantığına geçmek gereklidir.

Adım 1: İlk Satırı Başlatın

  • Satırdaki her hücreye benzersiz bir küme kimliği atayın.

Adım 2: Bazı Bitişik Hücreleri Yatay Olarak Birleştirin

  • Bitişik hücreleri aynı küme kimliğine ayarlayarak rastgele birleştirin. Bu, yatay geçişlerin olmasını sağlar.

3. Adım: Sonraki Satıra Dikey Bağlantılar Oluşturun

  • Satırda yer alan her bir küme için, en az bir hücrenin aşağı doğru bağlanması gerekir (bağlantının sağlanması için).
  • Her bir hücre kümesinden rastgele bir veya daha fazla hücre seçerek bir sonraki satıra bağlayın.

Adım 4: Sonraki Satıra Geçin

  • Aşağıdaki hücrelere aynı küme kimliğini atayarak dikey bağlantıları devam ettirin.
  • Atanmamış hücrelere yeni küme kimlikleri atayın.

Adım 5: Son sıraya ulaşılana kadar 2-4 arasındaki adımları tekrarlayın.

  • Satır satır işlemeye devam edin.

Adım 6: Son Satırı İşleyin

  • Son satırdaki tüm hücrelerin aynı kümeye ait olduğundan emin olmak için, kalan ayrı kümeleri birleştirin.

Daha Fazla Okuma

Bu yazıyı beğendiyseniz, şu öneriler de ilginizi çekebilir:


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

Mikkel Christensen

Yazar Hakkında

Mikkel 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.