Miklix

מחולל מבוך גידול אלגוריתם עצים

פורסם: 16 בפברואר 2025 בשעה 21:38:25 UTC
עודכן לאחרונה: 12 בינואר 2026 בשעה 9:06:02 UTC

מחולל מבוך המשתמש באלגוריתם "עץ גדל" ליצירת מבוך מושלם. אלגוריתם זה נוטה ליצור מבוכים דומים לאלגוריתם "ציד והרג", אך עם פתרון טיפוסי שונה במקצת.

עמוד זה תורגם במכונה מאנגלית על מנת להנגיש אותו לכמה שיותר אנשים. למרבה הצער, תרגום מכונה עדיין אינו טכנולוגיה משוכללת, ולכן עלולות להתרחש שגיאות. אם אתה מעדיף, תוכל לצפות בגרסה האנגלית המקורית כאן:

Growing Tree Algorithm Maze Generator

אלגוריתם העץ הגדל מעניין, משום שהוא יכול לחקות את התנהגותם של מספר אלגוריתמים אחרים, בהתאם לאופן שבו התא הבא נבחר במהלך היצירה. המימוש בדף זה משתמש בגישה של רוחב תחילה, דמוית תור.

מבוך מושלם הוא מבוך שבו יש בדיוק נתיב אחד מכל נקודה במבוך לכל נקודה אחרת. זה אומר שאתה לא יכול בסופו של דבר להסתובב במעגלים, אבל לעתים קרובות תתקל במבוי סתום, מה שיאלץ אותך להסתובב ולחזור.

מפות המבוך שנוצרות כאן כוללות גרסת ברירת מחדל ללא כל עמדות התחלה וסיום, כך שתוכלו להחליט על אלו בעצמכם: יהיה פתרון מכל נקודה במבוך לכל נקודה אחרת. אם תרצו השראה, תוכלו לאפשר עמדת התחלה וסיום מוצעת - ואפילו לראות את הפתרון בין השניים.


צור מבוך חדש








אודות אלגוריתם העץ הגדל

אלגוריתם העץ הגדל הוא שיטה גמישה וחזקה ליצירת מבוכים מושלמים. האלגוריתם מעניין משום שהוא יכול לחקות את התנהגותם של מספר אלגוריתמים אחרים ליצירת מבוכים, כגון אלגוריתם פרים, מעקב חוזר רקורסיבי וחילוק רקורסיבי, בהתאם לאופן שבו בוחרים את התא הבא לעיבוד.

כיצד פועל אלגוריתם העץ הגדל

שלב 1: אתחול

  • התחל עם רשת של תאים שלא ביקרת בהם.
  • בחר תא התחלה אקראי והוסף אותו לרשימה.

שלב 2: לולאת יצירת מבוך

  • כל עוד רשימת התאים אינה ריקה: בחר תא מהרשימה בהתבסס על אסטרטגיה ספציפית (מוסברת בהמשך). פתח מעבר מהתא שנבחר לאחד משכניו הלא מבקרים (נבחר באופן אקראי). הוסף את השכן לרשימה מכיוון שהוא כעת חלק מהמבוך. אם לתא שנבחר אין שכנים שלא מבקרים, הסר אותו מהרשימה.

שלב 3: סיום

  • האלגוריתם מסתיים כאשר אין עוד תאים ברשימה, כלומר כל המבוך גולף.

אסטרטגיות בחירת תאים (גמישות האלגוריתם)

המאפיין המגדיר את אלגוריתם "עץ גידול" הוא האופן שבו בוחרים איזה תא לעבד בהמשך. בחירה זו משפיעה באופן דרמטי על מראה המבוך:

התא החדש ביותר (התנהגות דמוית מחסנית) – מעקב אחורי רקורסיבי:

  • תמיד בחר את התא שנוסף לאחרונה.
  • מייצר מסדרונות ארוכים ומפותלים עם הרבה מבוי סתום (כמו מבוך חיפוש לעומק קודם).
  • מבוכים נוטים להיות בעלי מעברים ארוכים וקלים לפתרון.

תא אקראי (אלגוריתם פריים אקראי):

  • בחר תא אקראי מהרשימה בכל פעם.
  • יוצר מבוך מפוזר באופן שווה יותר עם נתיבים מורכבים וסבוכים.
  • פחות מסדרונות ארוכים ויותר הסתעפות.

התא העתיק ביותר (התנהגות דמוית תור):

  • בחר תמיד את התא העתיק ביותר ברשימה.
  • יוצר מבוכים עם פריסה אחידה יותר, כמו תבנית חיפוש שקודם כל ברוחב.
  • מעברים קצרים וסבוכים עם חיבורים צפופים.
  • (זוהי הגרסה המיושמת כאן)

גישות היברידיות:

שלבו אסטרטגיות עבור מאפייני מבוך מגוונים. לדוגמה:

  • 90% חדש, 10% אקראי: נראה בעיקר כמו מבוך רקורסיבי של מעקב אחורה, אבל עם ענפים מדי פעם ששוברים מסדרונות ארוכים.
  • 50% החדש ביותר, 50% הוותיק ביותר: מאזן מסדרונות ארוכים עם צמיחה שיחיה.

קריאה נוספת

אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:


שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל כריסטנסן

על המחבר

מיקל כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.