Miklix

Էլլերի ալգորիթմ Maze գեներատոր

Հրապարակվել է՝ 16 փետրվարի, 2025 թ., 20:36:56 UTC

Maze գեներատորը, օգտագործելով Eller-ի ալգորիթմը կատարյալ լաբիրինթոս ստեղծելու համար: Այս ալգորիթմը հետաքրքիր է, քանի որ պահանջում է հիշողության մեջ պահել ընթացիկ շարքը (ոչ ամբողջ լաբիրինթոսը), այնպես որ այն կարող է օգտագործվել շատ, շատ մեծ լաբիրինթոսներ ստեղծելու համար նույնիսկ շատ սահմանափակ համակարգերում:

Այս էջը ավտոմատ կերպով թարգմանվել է անգլերենից՝ հնարավորինս շատ մարդկանց համար հասանելի դարձնելու համար: Ցավոք, մեքենայական թարգմանությունը դեռ կատարելագործված տեխնոլոգիա չէ, ուստի կարող են սխալներ առաջանալ: Եթե ​​նախընտրում եք, կարող եք դիտել բնօրինակ անգլերեն տարբերակը այստեղ.

Eller's Algorithm Maze Generator

Էլլերի ալգորիթմը լաբիրինթոս առաջացման ալգորիթմ է, որն արդյունավետորեն արտադրում է կատարյալ լաբիրինթոսներ (առանց օղակների և մեկ ուղի ցանկացած երկու կետերի միջև)՝ օգտագործելով տող առ տող մոտեցումը: Այն արտադրում է Կրուսկալի ալգորիթմի նման լաբիրինթոսներ, բայց դա անում է միանգամից մեկ տող ստեղծելով, առանց ամբողջ լաբիրինթոսը հիշողության մեջ պահելու անհրաժեշտության: Դա օգտակար է դարձնում շատ սահմանափակ համակարգերում շատ մեծ լաբիրինթոսներ ստեղծելու և ընթացակարգային բովանդակության ստեղծման համար:

Կատարյալ լաբիրինթոսն այն լաբիրինթոսն է, որտեղ լաբիրինթոսի ցանկացած կետից դեպի ցանկացած այլ կետ կա ուղիղ մեկ ճանապարհ: Դա նշանակում է, որ դուք չեք կարող ի վերջո շրջել շրջանակներով, բայց հաճախ կհանդիպեք փակուղիների՝ ստիպելով ձեզ շրջվել և հետ գնալ:

Այստեղ ստեղծված լաբիրինթոսային քարտեզները ներառում են լռելյայն տարբերակ՝ առանց որևէ մեկնարկի և ավարտի դիրքերի, այնպես որ դուք կարող եք որոշել դրանք ինքներդ. լուծում կլինի լաբիրինթոսի ցանկացած կետից մինչև ցանկացած այլ կետ: Եթե ​​ցանկանում եք ոգեշնչել, կարող եք միացնել առաջարկվող սկզբի և ավարտի դիրքը և նույնիսկ տեսնել լուծումը երկուսի միջև:


Ստեղծեք նոր լաբիրինթոս








Էլլերի ալգորիթմի մասին

Էլլերի ալգորիթմը ներկայացվել է Դեյվիդ Էլլերի կողմից։

Ալգորիթմը աչքի է ընկնում լաբիրինթոսների առաջացման իր արդյունավետ շարք առ շարք մոտեցմամբ՝ այն դարձնելով իդեալական իրական ժամանակում ստեղծված անսահման լաբիրինթոսների կամ լաբիրինթոսների համար: Այն սովորաբար մեջբերվում է ընթացակարգային բովանդակության ստեղծման և լաբիրինթոս սերնդի գրականության մեջ, բայց ես չեմ կարողացել գտնել դրա սկզբնական հրապարակումը մանրամասնող հիմնական աղբյուրներ:

Ինչպես է Էլլերի ալգորիթմը աշխատում Maze Generation-ի համար

Էլլերի ալգորիթմը մշակում է մեկ տող՝ պահպանելով և փոփոխելով միացված բջիջների հավաքածուները: Այն ապահովում է միացում՝ խուսափելով օղակներից, և այն արդյունավետորեն երկարացնում է լաբիրինթոսը դեպի ներքև:

Այն տեսականորեն կարող է օգտագործվել անսահման լաբիրինթոսներ ստեղծելու համար, սակայն, որպեսզի համոզվենք, որ ստեղծված լաբիրինթոսն իրականում լուծելի է, անհրաժեշտ է ինչ-որ պահի անցնել «վերջնական շարքի» տրամաբանությանը, որպեսզի ավարտվի լաբիրինթոսը:

Քայլ 1. Նախնականացրեք առաջին շարքը

  • Տողի յուրաքանչյուր բջիջ նշանակեք եզակի հավաքածուի ID:

Քայլ 2. Հորիզոնական կերպով միացրեք որոշ հարակից բջիջներ

  • Պատահականորեն միաձուլեք հարակից բջիջները՝ դրանք դնելով նույն հավաքածուի ID-ի վրա: Սա ապահովում է հորիզոնական անցումների առկայությունը:

Քայլ 3. Ստեղծեք ուղղահայաց կապեր հաջորդ շարքին

  • Յուրաքանչյուր շարքի համար, որը հայտնվում է տողում, առնվազն մեկ բջիջ պետք է միանա դեպի ներքև (միացումն ապահովելու համար):
  • Յուրաքանչյուր հավաքածուից պատահականորեն ընտրեք մեկ կամ մի քանի բջիջ՝ հաջորդ շարքին միանալու համար:

Քայլ 4. Անցեք հաջորդ տող

  • Փոխանցեք ուղղահայաց կապերը՝ վերագրելով նույն հավաքածուի ID-ն ստորև ներկայացված համապատասխան բջիջներին:
  • Նշանակեք նոր հավաքածուի ID-ներ ցանկացած չնշանակված բջիջներին:

Քայլ 5. Կրկնել 2–4 քայլերը, մինչև հասնենք վերջին շարքին

  • Շարունակեք մշակել տող առ տող:

Քայլ 6. Մշակել վերջնական շարքը

  • Համոզվեք, որ վերջին տողում գտնվող բոլոր բջիջները պատկանում են միևնույն բազմությանը` միացնելով մնացած առանձին խմբերը:

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Բանգ Քրիստենսեն

Հեղինակի մասին

Միկել Բանգ Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: