Miklix

Kuwinda na Ua jenereta ya Maze

Iliyochapishwa: 16 Februari 2025, 20:57:50 UTC

Jenereta ya Maze kwa kutumia kanuni ya Kuwinda na Ua ili kuunda mlolongo mzuri. Algorithm hii ni sawa na Recursive Backtracker, lakini huwa na mazes yenye korido ndefu kidogo, zinazopinda.

Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

Hunt and Kill Maze Generator

Algorithm ya kuwinda na kuua ni toleo lililobadilishwa la Recursive Backtracker. Marekebisho yanajumuisha kuchanganua kwa utaratibu (au "kuwinda") kwa seli mpya kuendelea kutoka wakati haiwezi kwenda mbali zaidi, kinyume na utafutaji wa kweli wa kujirudia, ambao utarejea kila mara kwenye kisanduku cha awali kwenye rafu.

Kwa sababu ya hili, algorithm hii inaweza kubadilishwa kwa urahisi ili kuzalisha mazes yenye sura na hisia tofauti, kwa kuchagua tu kuingiza hali ya "kuwinda" mara nyingi zaidi au kulingana na sheria maalum. Toleo linalotekelezwa hapa linaingia tu katika hali ya "kuwinda" wakati haliwezi kwenda mbali zaidi kutoka kwa kisanduku cha sasa.

Maze kamili ni maze ambayo kuna njia moja kutoka kwa hatua yoyote kwenye maze hadi hatua nyingine yoyote. Hiyo ina maana kwamba huwezi kuishia kuzunguka kwenye miduara, lakini mara nyingi utakutana na ncha zisizokufa, na kukulazimisha kugeuka na kurudi nyuma.

Ramani za mlolongo zinazozalishwa hapa ni pamoja na toleo chaguo-msingi bila nafasi zozote za kuanza na kumaliza, kwa hivyo unaweza kujiamulia hizo: kutakuwa na suluhu kutoka sehemu yoyote kwenye msururu hadi sehemu nyingine yoyote. Ikiwa unataka msukumo, unaweza kuwezesha nafasi iliyopendekezwa ya kuanza na kumaliza - na hata kuona suluhisho kati ya hizo mbili.


Tengeneza maze mpya








Kuhusu Algorithm ya Kuwinda na Kuua

Algorithm ya Kuwinda na Ua ni njia rahisi lakini yenye ufanisi ya kutengeneza maze. Inafanana kwa kiasi fulani na utafutaji wa kina wa kwanza (yaani algoriti ya Recursive Backtracker), isipokuwa wakati haiwezi kwenda mbali zaidi kutoka kwa nafasi ya sasa, inachanganua kwa utaratibu (au "kuwinda") juu ya mlolongo ili kutafuta kisanduku kipya cha kuendelea. Algorithm ina awamu mbili kuu: kutembea na uwindaji.

Jinsi Algorithm ya Kuwinda na Kuua Hufanya Kazi kwa Kizazi cha Maze

Hatua ya 1: Anza kwa seli nasibu

  • Tafuta kisanduku nasibu kwenye gridi ya taifa na uweke alama kama kilitembelewa.

Hatua ya 2: Awamu ya Kutembea (Matembezi Bila mpangilio)

  • Chagua jirani ambaye hajatembelewa nasibu.
  • Sogea kwa jirani huyo, itie alama kuwa imetembelewa, na uchonge njia kati ya seli ya awali na mpya.
  • Rudia hadi hakuna majirani ambao hawajatembelewa kushoto.

Hatua ya 3: Awamu ya Uwindaji (Kufuatilia Nyuma kupitia Uchanganuzi)

  • Changanua safu mlalo ya gridi kwa safu (au safu kwa safu).
  • Tafuta seli ya kwanza ambayo haijatembelewa ambayo ina angalau jirani mmoja aliyetembelewa.
  • Unganisha kisanduku hicho kwa jirani aliyetembelewa ili kuendelea na hatua ya kutembea.
  • Rudia hadi seli zote zimetembelewa.

Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Bang Christensen

Kuhusu Mwandishi

Mikkel Bang Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.