אז ככה, סיימתי את התרגיל.
לא הצלחתי להבין מדוע יש שימוש בפונקציות:
אם הלוח לא מלא ואין ניצחון.
אם הלוח מלא אבל אין ניצחון.
בנוגע לראשונה - הרי אם אנחנו בודקים את כל הצירופים האפשריים ואין נצחון אז בהכרח שאין ניצחון.
וכל עוד ה"סופר צעדים" שנדרשנו להכניס אינו מפסיק את הלולאה מכאן שהלוח אינו מלא וממשיכים לשחק.
הקוד שלי לדעתי בכלל לא מגיע למצב שהוא משתמש בפונקציה הזו.
בנוגע לשניה - אם אין ניצחון וסופר הצעדים הגיע למספר הצעדים התקינים המקסימלים מכאן שהלוח מלא ואין נצחון.
גם פה אני לא חושב שהקוד שלי בכלל הגיע למצב שהוא השתמש בפונקציה הזו, ואם כן סתם הייתה לו כפילות.
בגדול אם לא יהיה את סופר הצעדים אז הפונקציות האלה יהפכו להיות רללונטיות כי אז נצטרך לבדוק אותם שנריץ לולאה, אבל אחרת לא הצלחתי להבין את השימוש בהם.
כמו כן, האם יש חיה כזו של להכניס פונקציות לרשימה ואז לזמן אותם משם ?
אני עדיין בשלבי פתירה של התרגיל, אז התשובה שלי בעירבון מוגבל.
אבל לפי איך שהוא מנוסח, מדובר כאן על בדיקות שצריך לבצע כדי לוודא מהם מצבי הלוח.
זה לא בהכרח אומר שלכל מצב כזה צריכה להיות פונ’ הבודקת אותו, אלא שבמסגרת הקוד שלך תדע להתמודד עם מצבי הלוח השונים ולהחזיר תשובה נכונה לגבי מי “המנצח” ברגע הנוכחי.
היי, @itamaraviv כתב את השאלה אז אני משאיר לו לתקן או לשפצר לי את התשובה בזמנו החופשי.
אם זה תלוי בי:
הפונקציות האלו היו יכולות להסתמך על מונה הצעדים (נניח: אם מספר הצעדים קטן מ־9 סימן שהלוח לא מלא)
יש מצב (לא בהכרח, צריך להסתכל על הקוד והשאלה לעומק) שעדיף להסתמך על הלוח בשביל לקבל פתרון גנרי יותר שמתאים לכל סוג לוח ולכל דרישה עתידית שלא תבוא (נניח אם יש וריאציה של המשחק איקס־עיגול שמאפשרת למלא תא פעמיים תחת מצבים מסוימים במשחק, או כל מני מקרים מוזרים אחרים של שינוי דרישות).
יש מצב שפשוט רצו להציק לכם קצת בתרגיל. גם זה לגיטימי.
בגדול אם אם אכן היה המצב שאתה מתאר בסעיף 2 אז אכן היה צריך להשתמש בהם בלולאה נגיד כתנאי (אני מניח) מעבר לצעדים אבל כעט להכניס את זה שם עושה לזה בדיקה מיותרת כל סיבוב
נכון להיום הקוד עובד לי גם בלעדיהם למרות שעשיתי אותן והם בפני עצמם עובדות.
מקסימום אשאיר לאיתמר לבדוק קצת יותר במקרה ומדובר בסעיף 3 שלך :):)
אם אתה מדבר על הסעיף שבו כתוב “כתבו 10 בדיקות” - אז המטרה היא שתכתוב טסטים לפונקציה שכתבת כבר (check_board) - המטרה היא שתכניס אליה 10 מצבים ותראה שהפלט הוא כמצופה, אם כתבת פונקציות אז אני שמח שתרגלת, אבל שים לב שבסעיף היה כתוב שזה למטרת בדיקה: