איקס עיגול - לוח מתאפס

תגיות:

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

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

נשמע שאכן הבעיה שלך היא בהגדרה של check_board.
האם הוא מחזיר לך את הלוח המעודכן לאחר ביצוע צעד חוקי?

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

  1. פונקציות כמו pop או append אשר משנות פיזית את הרשימה
  2. איפוס או השמה של רשימה ריקה לתוך הרשימה הקיימת (או לכל משתנה אחר שמצביע אליה)
  3. אולי יש עוד
לייק 1

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

לא השתמשתי בcopy ברשימה ריקה או בappend/pop

מה כוונתך בפונ’ של התור?

אצלי זה מוגדר בתור בשם אחר אבל בעיקרון זה make_turn שמופיע בתרגיל

אני ממש מצטער, אבל אני לא מבין מבחינת העברית שכתבת, מה למעשה עשית.
כתבת פונ’ אחרת במקום make_turn שעושה את אותה פעולה כמו make_turn?

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

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