כשאני מריץ את המשחק אחרי התור של השחקן הראשון הלוח מתעדכן
אבל כשהפונקציה של בדיקת הלוח רצה, הלוח מתאפס ומוחק את התור.
בעיקרון הבעיה שלי היא שאחרי שאני מגדיר את הלוח אני לא מצליח להשתמש בלוח המעודכן והוא מתאפס מחדש כל פעם.
אשמח לשלוח את הקוד אם ההסבר לא היה ברור מספיק, תודה!
Felixmn
נשמע שאכן הבעיה שלך היא בהגדרה של check_board.
האם הוא מחזיר לך את הלוח המעודכן לאחר ביצוע צעד חוקי?
aviadamar
בגדול אם אתה לא מייצר copy של הלוח (כלומר לא משנה את הלייזר שמצביע אל הלוח)
אז זה לא אמור לאפס לך אותו כל עוד התכנית לא נגמרת. מה שכן יכול לאפס רשימות תוך כדי תוכנית:
פונקציות כמו pop או append אשר משנות פיזית את הרשימה
איפוס או השמה של רשימה ריקה לתוך הרשימה הקיימת (או לכל משתנה אחר שמצביע אליה)
אולי יש עוד
לייק 1
nirlevran
כש check_board רץ הוא קורא לפונקציה של התור כדי לקבל משם את המשתנה של הלוח.
אשמח לקבל רעיונות אחרים איך אני יכול לקבל את משתנה הלוח שמוגדר בפונקציה אחרת.
nirlevran
לא השתמשתי בcopy ברשימה ריקה או בappend/pop
Felixmn
מה כוונתך בפונ’ של התור?
nirlevran
אצלי זה מוגדר בתור בשם אחר אבל בעיקרון זה make_turn שמופיע בתרגיל
Felixmn
אני ממש מצטער, אבל אני לא מבין מבחינת העברית שכתבת, מה למעשה עשית.
כתבת פונ’ אחרת במקום make_turn שעושה את אותה פעולה כמו make_turn?
אם כן, למה? לא חושב שזה יפריע יותר מידי לסגל, אבל לא רואה את הצורך בתרגיל הספציפי הזה להשתמש בפונ’ אחרת כאשר make_turn יכולה לעשות את העבודה.
בעיקרון איך שהשאלה מנוסחת, אז check_board ו- make_turn מבחינת המהות של כל אחת מהן משרתות מטרות נפרדות. קשה לי לראות תרחיש בו אתה צריך לקרוא לאחת מהן מתוך השניה.