Miklix

Rekursif Backtracker Maze generator

Diterbitkeun: 16 Pébruari 2025 jam 18.27.44 UTC

Maze generator ngagunakeun algoritma backtracker recursive pikeun nyieun Maze sampurna. Algoritma ieu condong nyieun mazes kalawan panjang, koridor pungkal sarta pohara panjang, solusi twisting.

Kaca ieu ditarjamahkeun ku mesin tina basa Inggris supados tiasa diaksés ku saloba-lobana jalma. Hanjakalna, tarjamahan mesin henteu acan janten téknologi anu sampurna, janten kasalahan tiasa lumangsung. Upami anjeun hoyong, anjeun tiasa ningali versi Inggris asli di dieu:

Recursive Backtracker Maze Generator

Algoritma backtracker recursive saleresna mangrupikeun milarian jero-heula umum. Nalika dianggo pikeun ngahasilkeun maze, éta rada dirobih pikeun milih jalur sacara acak, sedengkeun upami dianggo pikeun tujuan pamilarian anu saleresna, biasana ngan ukur milarian unggal tingkat dina urutan linier. Ieu condong ngahasilkeun mazes kalawan panjang, koridor pungkal sarta pohara panjang, solusi twisting.

Maze sampurna nyaéta Maze dimana aya persis hiji jalur ti titik mana waé dina Maze ka titik séjén. Éta hartina anjeun moal bisa mungkas nepi ka sabudeureun dina bunderan, tapi anjeun bakal mindeng sapatemon dead ends, forcing anjeun ngahurungkeun sabudeureun tur balik.

Peta Maze anu dihasilkeun di dieu kalebet versi standar tanpa posisi awal sareng akhir, ku kituna anjeun tiasa mutuskeun pikeun diri anjeun: bakal aya solusi ti mana waé dina maze ka titik anu sanés. Upami anjeun hoyong inspirasi, anjeun tiasa ngaktipkeun posisi mimiti sareng bérés anu disarankeun - komo ningali solusi antara dua.


Ngahasilkeun maze anyar








Algoritma backtracker recursive mangrupikeun metode pamilarian anu paling jero pikeun ngahasilkeun mazes anu sampurna (mazes tanpa loop sareng jalur tunggal antara dua titik). Éta basajan, éfisién, sareng ngahasilkeun labirin anu pikaresepeun kalayan koridor anu panjang sareng berliku.

Sanajan ngaranna, teu merta kudu dilaksanakeun maké recursion. Hal ieu mindeng dilaksanakeun dina pendekatan iterative ngagunakeun antrian LIFO (ie tumpukan). Pikeun mazes anu kacida gedéna, ngagunakeun recursion leuwih gampang ngakibatkeun panggero tumpukan mudal, gumantung kana basa programming sarta memori sadia. Antrian LIFO bisa leuwih gampang diadaptasi pikeun nanganan jumlah badag data, malah tetep antrian dina disk atawa dina database lamun aya memori teu cukup.


Kumaha Gawéna

Algoritma ngoperasikeun ngagunakeun pendekatan pilarian jero-heula dumasar-tumpukan. Ieu léngkah-léngkah ngarecahna:

  1. Pilih sél awal sareng cirian salaku dilongok.
  2. Bari aya sél unvisited:
    • Neuteup sél tatangga nu can dilongok.
    • Upami sahenteuna aya tatangga anu teu didatangan:
      • Pilih sacara acak salah sahiji tatangga anu teu didatangan.
      • Cabut témbok antara sél ayeuna sareng tatangga anu dipilih.
      • Pindah ka tatangga anu dipilih sareng cirian salaku dilongok.
      • Nyorong sél ayeuna kana tumpukan.
    • Upami teu aya tatangga anu teu didatangan:
      • Backtrack ku popping sél panungtungan ti tumpukan.
  3. Nuluykeun prosés ieu nepi ka tumpukan kosong.

Kanyataan anu pikaresepeun ngeunaan algoritma ieu nyaéta tiasa dianggo salaku generator Maze sareng salaku solver Maze. Lamun ngajalankeun eta dina Maze geus dihasilkeun sarta ngan eureun mun anjeun pencét titik tungtung mutuskeun, tumpukan bakal ngandung solusi pikeun Maze nu.

Sabenerna mah boga dua vérsi algoritma ieu dimaénkeun dina situs ieu: antrian LIFO dumasar hiji pikeun ngahasilkeun mazes dina kaca ieu sarta recursion dumasar hiji pikeun mazes ngarengsekeun, ogé mazes dihasilkeun ku algoritma séjén (éta kumaha peta jeung solusi dijieun). Ngabogaan dua vérsi anu béda ngan pikeun olahraga sabab kuring kutu buku anu mendakan éta pikaresepeun, boh tiasa dianggo pikeun duanana ;-)

Bagikeun on BlueskyBagikeun dina FacebookBagikeun on LinkedInBagikeun dina TumblrBagikeun harga XBagikeun on LinkedInPin on Pinterest

Mikkel Bang Christensen

Ngeunaan Pangarang

Mikkel Bang Christensen
Mikkel mangrupikeun panyipta sareng pamilik miklix.com. Anjeunna gaduh pangalaman langkung ti 20 taun salaku programmer komputer / pamekar software profésional sareng ayeuna padamelan full-time pikeun korporasi IT Éropa anu ageung. Nalika henteu ngeblog, anjeunna nyéépkeun waktos luangna dina sajumlah ageung minat, hobi, sareng kagiatan, anu tiasa ditingali dina rupa-rupa topik anu aya dina halaman wéb ieu.