xonix אלגוריתם לסגירת שטחים - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


sharpi

Recommended Posts

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

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

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

תודה

קישור לתוכן
שתף באתרים אחרים

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

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...