עבור לתוכן

xonix אלגוריתם לסגירת שטחים

Featured Replies

פורסם

זוכרים את המשחק סוגר שטחים?

אני צריך עזרה במציאת אלגוריתם על מנת לממש את המשחק

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

תודה

פורסם

ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

נ.ב. המשחק נקרא Xonix.

פורסם
  • מחבר

לא כל כך הבנתי את האלגוריתם.

תוכל לתת לי כיוון מחשבה לאלגוריתם סגירת השטחים? איך אני מזהה שסגרתי שטח? .9ובאיזה שטח מדובר)

פורסם

יש 2 פעולות שאתה צריך לעשות -

1. לזהות שסגרת שטח.

2. לסמן את השטח שנסגר.

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

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

פורסם
  • מחבר

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

תוכל להסביר בבקשה את העיקרון של האלגוריתם שמזהה את השטח הנסגר ומסמן אותו.?

פורסם

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

פורסם
  • מחבר

היכן האלגוריתם עצמו של הסוגר שטחים? לא הצלחתי להבין משם.

בו נאמר שיש לי מערך דו ממדי שמציין 0 פנוי 1 תפוס.

כשאני סוגר שטח יש הרבה 1 ובתוכו 0. איך אני מסמן את כל השטח ב 1 ים, איך אני מזהה את השטח הספציפי שנסגר?

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

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

פורסם

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

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

פורסם
  • מחבר

בא נאמר שיש לי מערך דו ממדי שיש לו מסגרת של 1 ים.

ועכשיו מישהו סגר שטח בפנים. אז יש בפנים שטח נוסף שמוקף ב 1 ובתוכו 0 ים. (מסביב ל1 ים יש 0 ים) איך האלגוריתם מתמודד עם זה?

פורסם
  • מחבר

אוקיי, תודה הסתדרתי

פורסם

נוצרו לך שני תתי שטחים - שבמקום שיהיה בהם 0 יהיה בהם ערכים אחרים (בכל תת שטח יהיה ערך אחר).

אתה צריך לבדוק באיזה תתי שטחים אין "יריבים", ולהפוך את הערך שלהם ל- 1 (כלומר, לסמן את השטח כמלא).

איך הסתדרת בסוף?

פורסם
  • מחבר

בדיוק כמו שאמרת, הבנתי את זה (תודה)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים