בחלק הראשון של השאלה החלטתי ללכת על 2 פונקציות (X ו- O) שמטרת הפונקציה היא לבדוק אם אחד מתנאי הניצחון מתקיימים, ואם כן להחזיר לי True (הפונקציה בהתחלה מוגדרת False) אבל משום מה, לא משנה איפה אני ממקם אותם, הפונקציה תמיד מחזירה לי True.
רק כשבאחד מתתי הרשימות אין בכלל X או O הפונקציה מחזירה לי False.
ניסיתי גם להריץ את הקוד ב Python tutor אבל גם כשאין מצב של ניצחון בכלל הפונקציה מחזירה לי True.
לדוג:
אני אנצל את הפוסט לעוד שאלה, עד לשלב האחרון הצלחתי לבנות את כל הקודים שיעבדו לפי בקשת התרגיל.
עכשיו בחלק האחרון שהמשחק צריך לעבוד באופן מלא השתמשתי ברוב הקודים הקודמים שלי כך שיחזירו ערך של True / False או שיחזירו לי את הלוח בחזרה לאחר שינוי (תור O או X), וככה אני רוצה שהפונקציה הסופית תשתמש בהם.
עכשיו כשאני מריץ את הקוד הסופי אני מקבל את ההודעה הבאה:
ניסיתי להריץ את כל הקוד ב python tutor אבל הוא ארוך מדי בשביל שאוכל להריץ אותו שם, וכשאני מריץ כל אחד מהפונקציות החיצוניות בנפרד אני מקבל שהן תקינות
גם ממה שאפשר לראות, ההתרעה שולחת אותי בחזרה לפונקציה מהסעיף הראשון שאמורה לבדוק אם X זכה באחת מהדרכים שיש ולהחזיר True אם הוא זכה, ובקוד השתמשתי בה כך שכל עוד הפונקציה של X והפונקציה של X מחזירות False אני רוצה שהקוד ימשיך לעבוד.
איזשהו רעיון איך לתקן את זה? @orpazf@aviadamar
מחוץ לפונקציות, פעם אחת, רק הלוח הריק.
שאר הפונקציות מתחלקות ל-2, פונקציות שאמורות להחזיר חיובי / שלילי (אם X זכה, אם O זכה ואם המשחק נגמר)
ועוד 2 פונקציות שכל אחת מהן מייצגת את התור של X או O שבודקות אם התור תקין ובהתאם מחזירות את הלוח חזרה עם השינוי.
בפונקציה הראשית אני מנסה פשוט שכל עוד המשחק לא נגמר, אז כל עוד X או O לא זכו המשחק ימשיך בהתאם להנחיות (מהלך זוגי או לא זוגי וכו).
עשיתי עכשיו שינוי קל שהפונקציה הראשית תרוץ על העתק של הלוח (פשוט כי אני רוצה שהלוח יתאפס בסוף המשחק) שלא שינתה את ההתראה, חוץ מזה הצלחתי להריץ את הקוד ב python tutor (רק בשביל לבדוק למה יש לי את ההתראה הזאת, לא העתקתי את 2 הפונקציות שאחראיות על התור של X או O שבאות אחרי השורה שבה הקוד נתקע לי) ושם הוא הצליח לרוץ בלי בעיה ונעצר רק בשורה שבה מוגדר לי התור של O (התור הראשון) כיוון שלא יכולתי להעתיק את הפונקציה,
לא ברור לי למה לי הקוד נעצר שם אבל ב python tutor הוא כן הצליח לעבור את החסימה הזאת
יתכן שאתה מעביר לפרמטר board ארגומנט שהוא פונקציה?
כי זה מה שהשגיאה שלך אומרת – אתה מנסה להתייחס לפונקציה (במקרה הזה, מה ששמור על board) עם סוגריים מרובעים