Ultra Spidey
New member
MOSAIC
Mosaic הוא משחק דמוי שולה המוקשים, שאפשר לשחק בו עם דף ועט. יש לוח משבצות, ובחלק מהמשבצות ישנם מספרים (מ-0 עד 9). כל מספר מייצג את מספר המשבצות שצריך להשחיר באיזור ה3X3 בו הוא נמצא. לדוגמה, ל: | | | | | 6 | | 5 | | | | | | | 2 | | (אם לא רואים טוב, נסו להעתיק לעורך טקסט ולשנות את הפונט לפונט מונוספייסי, כמו Courier או System.) מתחילים מ-6, כי מסביבו יש רק 6 משבצות. משחירים את כולן. נותרנו עם 6 משבצות, שיכולות להיות ריקות או מושחרות. נעבור ל-2. מכיוון שסימנו את 6 המשבצות מסביב ל6, כעת מסביב ל-2 יש לנו 2 משבצות מסומנות. נסמן ב-X את שאר המשבצות סביב ה-2. נסיים עם ה-5. ליד ה-5 יש 3 מושחרות, 2 לא ידועות ו-1 מחוקה. מכך אפשר להסיק ש-2 הלא-ידועות הן מושחרות. וכך הלאה, עם אינספור אפשרויות. ניסיתי לכתוב תוכנה שפותרת לוחות כאלה בפלאש - אבל נתקלתי בבעיה. הפונקציה Iterate, אותה כתבתי בבת אחת וללא בדיקה תוך כתיבה, לא מתפקדת כראוי - היא לא משחירה ולא מוחקת אף משבצת. הדרכה: בלחיצה על משבצת מופיע TRACE בו רשום הX, Y של המשבצת (כחלק ממערך המשבצות הכולל, לא מבחינת מיקום), והסוג שלה: uk זה Unknown, סוג marked זה מושחר/מסומן, וblocked זה מחוק. בינתיים הכנסת המספרים לקופסה מתבצעת עם כפתור ותיבת טקסט: בתיבה רושמים את הX המקומי, הY המקומי והמספר אותו רוצים לשים, עם רווח אחד בין מספר למספר. לוחצים על INPUT והמספר יופיע במשבצת המתאימה. הINPUT השני עושה 2 דברים: אם זו פעם ראשונה שלוחצים עליו, הוא יריץ את FirstIteration, שבודק לראות אם יש פינות שמספרן 4 (כלומר פינה מושחרת לגמרי), משבצות בצדדים שמספרן 6 (צד מושחר לגמרי) ומשבצות באמצע שמספרן 9. עוד לא הוספתי בדיקה למשבצות בכל הלוח שמספרן 0 (אין משבצות מסומנות מסביב). בפעם השניה שלוחצים על הכפתור, הוא יריץ את Iterate. תודה רבה לכל מי שמנסה לעזור
Mosaic הוא משחק דמוי שולה המוקשים, שאפשר לשחק בו עם דף ועט. יש לוח משבצות, ובחלק מהמשבצות ישנם מספרים (מ-0 עד 9). כל מספר מייצג את מספר המשבצות שצריך להשחיר באיזור ה3X3 בו הוא נמצא. לדוגמה, ל: | | | | | 6 | | 5 | | | | | | | 2 | | (אם לא רואים טוב, נסו להעתיק לעורך טקסט ולשנות את הפונט לפונט מונוספייסי, כמו Courier או System.) מתחילים מ-6, כי מסביבו יש רק 6 משבצות. משחירים את כולן. נותרנו עם 6 משבצות, שיכולות להיות ריקות או מושחרות. נעבור ל-2. מכיוון שסימנו את 6 המשבצות מסביב ל6, כעת מסביב ל-2 יש לנו 2 משבצות מסומנות. נסמן ב-X את שאר המשבצות סביב ה-2. נסיים עם ה-5. ליד ה-5 יש 3 מושחרות, 2 לא ידועות ו-1 מחוקה. מכך אפשר להסיק ש-2 הלא-ידועות הן מושחרות. וכך הלאה, עם אינספור אפשרויות. ניסיתי לכתוב תוכנה שפותרת לוחות כאלה בפלאש - אבל נתקלתי בבעיה. הפונקציה Iterate, אותה כתבתי בבת אחת וללא בדיקה תוך כתיבה, לא מתפקדת כראוי - היא לא משחירה ולא מוחקת אף משבצת. הדרכה: בלחיצה על משבצת מופיע TRACE בו רשום הX, Y של המשבצת (כחלק ממערך המשבצות הכולל, לא מבחינת מיקום), והסוג שלה: uk זה Unknown, סוג marked זה מושחר/מסומן, וblocked זה מחוק. בינתיים הכנסת המספרים לקופסה מתבצעת עם כפתור ותיבת טקסט: בתיבה רושמים את הX המקומי, הY המקומי והמספר אותו רוצים לשים, עם רווח אחד בין מספר למספר. לוחצים על INPUT והמספר יופיע במשבצת המתאימה. הINPUT השני עושה 2 דברים: אם זו פעם ראשונה שלוחצים עליו, הוא יריץ את FirstIteration, שבודק לראות אם יש פינות שמספרן 4 (כלומר פינה מושחרת לגמרי), משבצות בצדדים שמספרן 6 (צד מושחר לגמרי) ומשבצות באמצע שמספרן 9. עוד לא הוספתי בדיקה למשבצות בכל הלוח שמספרן 0 (אין משבצות מסומנות מסביב). בפעם השניה שלוחצים על הכפתור, הוא יריץ את Iterate. תודה רבה לכל מי שמנסה לעזור