14 Temmuz 2014, PAZARTESİ

Özyinelemeli Backtracker Üretme Algoritması - Labirent

Bu eğitimde yaparsınız Ben rastgele labirentine oluşturmak için nasıl gösterilir ediyorum Herhalde ben olacak münzevi backtracking algoritması kullanarak bilirsin Algoritma çalışmaları sonra ben javascript kullanarak size bir uygulama ovett göstereceğim Bu algoritma Bunlardan biri var jeneratör algoritmaları Labirent olduğunuz kullandığı derinliği öncelikle uygulamak gerçekten çok kolay arama Normalde bir yığın kullanır, ancak bir yan not olarak Bu algoritma size yol açtığını unutmayın nispeten üretecek demektir Dedans Daha sonra basit labirentine Eğer kullanıyorsanız daha karmaşık algor

itmalar çalışır yolu düz dışarı gerçekten basit böyle bir notu ile Bu örnekte ben bir dört dört sınıfta var İlk adım, herhangi bir satış olabilir harika içindeki bir hücreyi seçmek için O hesaplamak kolaydır çünkü ben nor

malde birinci tercih Hücredeki ziyaret edebilirsiniz böylece sonra komşuları olmadığını kontrol hangi bu birinden gidebilir hücreleri anlamına gelir Ya bu durumda dikey veya yatay gidiş aşağı gidebilir ya

“Nasıl Yinelemeli Backtracker algoritması kullanılarak rastgele labirentine üretir. Bu eğitimde bir yığın ve derinliği ilk arama kullanarak basit labirent jeneratö...”
Easy Learn Tutorial

haklarına sonraki adım rasgele seçmek için ona gidip bu komşular bu yüzden koyarak koymak tarafından bir yığın üzerinde seçmiş ve sonra biri geçerli hücreden yolu seçmiş olduğunu işareti Bu örnekte de geçerli hücre aşağı gitmek seçtik turuncu temsil edildiğini satıcının Asustek ve siyah çizgi ben den alıyorum yol gösterir üzerinde Ben gidiyorum 1 mevcut hücre olası komşular ne onları aynı soruyu soran tekrar rastgele yığın üzerinde bir o kadar gitmek ama bu seçim

Özyinelemeli Backtracker Üretme Algoritması - Labirent Resim 1 Özyinelemeli Backtracker Üretme Algoritması - Labirent Resim 2 Özyinelemeli Backtracker Üretme Algoritması - Labirent Resim 3 Özyinelemeli Backtracker Üretme Algoritması - Labirent Resim 4

böylece filan derken bu devam Böyle bir duruma gelinceye kadar geçerli hücre nerede yok biz gitmiş değil biz gidip herhangi komşular Bu noktada biz işaretli önce geçerli hücre ziyaret ediliyor ve biz orada biz şimdiki hücreye geri dönmek yığın kapalı pop mümkün olan her komşuları bakarak iki numara adıma çevirmek rastgele giderek birini seçerek ve yığına eklendi Yine bu noktada üzerinde ve daha sonra rapor yapacağız pop kapalı hücrelerin bir demet konum Yine% var nerede bu bir elde edene kadar ah biz bir komşum va

r nerede Biz ziyaret için deneyebilirsiniz ve daha sonra bu noktada geçerli hücreyi ziyaret için artık komşuları var olsun yığını vardı yeterince hücreleri devam edecek Bu senaryo tüm hücreleri yeniden gözden ve yığın şimdi nerede Boş nedenle bu ortaya çıkan labirent sana göstereyim olurdu algoritma yukarı JavaScript uygulaması ne yapmam seçtiniz ilk hücreyi oluşturdu Sınıf beni her hücrenin izlemenize yardımcı olmak için Bu özel durumda, iki özelliği bir sahiptir sitesi olup olmadığını gösteren bir boolean onun hangi olduğunu ziyaret ve sonra bir özellik olarak adlandırılan duvar belki bu olduğunu var Bana bu iç artı bir yer geliştirici dört parlak tarafından temsil edilebilir Bu temsil eder Hücrenin 1 civarında duvarlar duvar temsil herhangi 0 belirli geçiyor bir yol orada olduğunu temsil olduğunu yön Ben de statik var Hücre sınıfına özellik sadece Bana sanırım böyle komşuları ve malzeme hesaplar için kolay yapıyor Eğer gerek yok Gerçekten ben burada ne yapıyorum anlıyorum ama temelde bit manipülasyonu kullanıyorum Bruins için ayarlandı mazeret de bir Dennis var o şekilde temsil edilebilir Bu sadece onların sadece yerlerde bu var ziyaret edilmiştir satmak için Daha sonra göreceğiz Geçersiz komşuları hesaplamak için kolay hale getirmek için Ben de sadece alır kurulu bir sınıf olarak adlandırılan var Heights içinde SETI tarafından başlatır ilk ızgara oluşturmak sona ızgara her hücre satmak için Bu da, iki boyutlu bir dizisi ile temsil edilebilir Sadece bir toplantıda tek boyutlu ID kullanımı Ben sis tek boyutlu bir dizi olduğu bazı yardımcı işlevi görmesine Ben sadece kendi Birkaç gün önce konumunu dönebilirsiniz ama bunu görselleştirmek için muhtemelen daha kolay Eğer sen X & Y koordinatlar cinsinden bakmak ve bunu dava islememesinin için hile ipuçları herhangi bir yöne duvara duvar setleri olduğunu bu yüzden, bir hücre tarafından temsil edilmesi sahip olamaz Onlara böyle sağ aşağı duvarlara falan Sol sahip bozuklukları beni oldukça kolay bu özellikleri ayarlamak yardımcı olacaktır Onlar duvarları ile temsil beri bit manipülasyonu kullanarak Enerji teşvik milyarlarca sonra ben Bu diğer fonksiyon komşuları alır benim gibi bir hücre içinde mevcut komşuları aşağı yukarı gidebilir eğer oldukça basit soldan sağa ve daha sonra burada ana algoritma bu yüzden ben bir yığın ilan yapacağımız ilk şey bir dizi olarak bu uygulamaya JavaScript sadece sıradan bir oluşturduğunuz olabilir pop itme işlevselliği yerli dizi ve uygular Bu özel durumda ihtiyaç olsa da Bu bir referans sadece bir javascript var onlar beni yapmak zorunda kılan şey bu sınıfa kendisine bir başvuru Daha sonra kapsam ve çünkü ben sadece kolaylaştırır bu tuşlar dizi var hesaplamak Gelecek gitmek için çalışıyorum yön o var burada bir işlevi var normal desen javascript program analisti bir dizi ve üreticimizin almak o yüzden ben gerçekten var sanırım hangi kiralamak hücre kolay kullanır var bu şey karıştırır çalışan ancak suç olduğunu anlamak bir dizi ve fonksiyonu ile yürüme, bu araba yönteme Çağrıyı önemli var olduğu Tüm hücreleri yolu ziyaret kadar ben bir araba uygulamak ettik çok çok kolay da yapmam ilk şey geçerli hücreyi almak olduğunu Benim pozisyon haricinde belirli bir verilen i sn komşuları ise olur Geçerli hücre başlatıldı bu noktaya olsun Bu satmak demektir, ya ölü ya da algoritması biliyorum akımı attı davayı yapılır yığın kapalı satmak sonraki birini almak Onlar komşuları ise onlar beni inkar ediyorsanız ziyaret edebilirsiniz görünce Biz devam aksi takdirde her fırsatta bitirdiniz algoritması ile bu yüzden mevcut hücreyi dedi bu bir sonraki adıma geçin başlatıldı Biz adımda gördüğümüz gibi ben yığına önce bunları büyüdü Ben komşular daha sonra rastgele bir tane ve o çuval seçim almak yol tarifi ne gitmek ve ben ne kadar vardır Ben sadece bir anahtar yapmak ve onun aktif gitmek mümkün duyuyorum komşusuna kadar yukarıda ona gidecek ve artık geçerli hücre söyledi Bizim gidiyorum yön duvar temizlemek için söyledi Ben ben gitmek ve bundan sonra bu dedi ters yönde duvar Ben bir hücreye aşağı veya yukarı gidiyorum eğer öyleyse de temizlemek için Üst duvar sonra temizlenir ve o anki hücrenin şu onun alt müthiş temizlenir olacak üstünde bu yüzden orada gösterebilir yol bu doğrultuda gidiyor ve işte yaptığımız tüm çek yukarı gidiyor Aynı durum aşağı sağa sola Bir hücre ve Rikers olan Aşk bir nedeni biz ziyaret emin olduğunu Bu her hücrenin kendisine orada hepsi oldukça kolaydır Sana bu kadar burada onun bir demo göstereyim JavaScript uygulanan algoritma Ben ürettiği herhangi seni tanıdığımı yenileyebilirsiniz Her zaman alır labirent zaman oldukça küçük bir miktar bu özel örnekte düşünmek im oluşturmak için Her 30 ila yaklaşık 30 labirent kırmızı ve sarı şeye ırkçı bakın sana sahip bir adamlar uygulanmasında bir oyun üzerinde parça dikkat zorunda değilsiniz buna Açıkçası ben herhangi bir çarpışma algılama uygulamaya konulmuştur ama mesele bu kırmızı şey götürmek olacaktır Sarı ok tuşları tüm yolu kullanarak yani iki kare var bu oldukça basit bir algoritma var Eğer abone emin olmak için umarım bu yardımcı oldu ve sana yakın zaman göreceksiniz.

Açıklama

Nasıl Yinelemeli Backtracker algoritması kullanılarak rastgele labirentine üretir. Bu eğitimde bir yığın ve derinliği ilk arama kullanarak basit labirent jeneratör algoritması anlatılmaktadır. Ben JavaScript kullanarak bir uygulama göstermektedir. O kod ve anlamak çok kolay olsa da çok karmaşık labirentine sonuçları (labirent o büyüdükçe çözmek daha zor olacaktır), diğer algoritmaları kullanarak çok daha karmaşık labirentler oluşturabilir, bu algoritma aklınızda bulundurun. Senin gereksinimlerine bağlı olarak, bu ancak, yeterli olmalıdır. CANLI DEMO: http://easylearntutorial.com/live-demo/recursive-backtracker-maze-generation.php Algoritma (Kaynak: Wikipedia) Labirent nesil derinlik ilk arama algoritması sık geriye gidilmiştir kullanılarak uygulanır: 1. İlk hücreye geçerli hücreyi yapın ve ziyaret olarak işaretleyin 2. edilmemiş hücreler varken 2.1. Geçerli hücre ziyaret edilmemiş herhangi komşuları varsa 2.1.1. Rastgele edilmemiş komşuları birini seçin 2.1.2. Yığına geçerli hücreyi itin 2.1.3. Geçerli hücre ve seçilen hücreye arasındaki duvarı kaldırmak 2.1.4. Seçilen hücreye geçerli hücreyi yapın ve ziyaret olarak işaretleyin 2.2. Yığın boş değilse Else 2.2.1. Yığından bir hücreyi Pop 2.2.2. Mevcut hücre olun 2.3. Başka 2.3.1. , Rastgele edilmemiş hücreyi seçin geçerli hücrenin yapmak ve ziyaret olarak işaretleyin Kolay tarafından Programlama öğreticiler Öğretici bilgi - Herkes bir uzman yazılım ve web geliştiricisi olmak öğrenebilirsiniz çünkü! Copyright (c) 2013 Rodrigo Silveira - http://www.easylearntutorial.com

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

Easy Learn Tutorial

Easy Learn Tutorial

Yeni başlayanlar için oyun geliştirme öğreticiler benim eğitim kanalın sadece bir odak noktasıdır. Amacım, nasıl JavaScript programlama gelişmiş bir PHP teknikleri, tasarım desenleri ve diğer yazılım mühendisliği kavramlarını öğrenmek için size öğretmek için de. Ben Android uygulamaları yanı sıra, tamamen yerli HTML5 uygulamaları, diğer şeylerin yanı sıra oyun, nesne yönelimli tasarım ve analiz, programlama seviyorum. Ben aynı zamanda onların zanaat iyi olmak için diğer kodlamacılar yardımcı olurken, bilgi paylaşımı, yeni meraklılarının toplantı ve eğlenmek, açık kaynak geliştirme ile ilgili tüm değilim. 2013 yılında, ben kitap * Packt Yayıncılık tarafından Eğlenceli Oyunlar * oluşturma ile HTML5 bilgi yayınladı. Bugün ben PHP, JavaScript ve Android geliştirme yapmak Salt Lake City, Utah, içinde Deseret Digital Media tam zamanlı çalışmak. Bağımsız bir oyun geliştiricisi olarak, ben HTML5 ve ilgili teknolojileri kullanarak 2D oyun yazmak Nintendo Web Framework kullanan Nintendo Wii U video oyun sistemi, geliştirmek için Nintendo bir lisansa sahip.

YORUMLAR



9.5/10

  • 63
    Olumlu
  • 3
    Olumsuz
  • 14
    Yorum
  • 9280
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • B4ROK

    B4ROK

    1 EKİM 2008

ANKET



Bu sayfa işinize yaradı mı?