עבור לתוכן

בעיה בהדפסת עלים של עץ משחק ב-JAVA

Featured Replies

פורסם
  • מחבר

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

אתה יכול למקד אותי בדיוק איפה נמצאת הבעיה בקוד בבקשה ?

  • תגובות 37
  • צפיות 3.9k
  • נוצר
  • תגובה אחרונה
פורסם

אני לא יודע, אבל אני מתייחס לשטויות כמו


ArrayList<GameTreeNode> children=node.getChildren();
Iterator<GameTreeNode> itChild=null;
if(node!=null)

שברור שאם node הוא null אז התוכנית תקרוס לפני ה IF

ובשטות כמו


if (children != null)
{
itChild=children.iterator();
player = level%2==0 ? participant : presentBoard.opposite(participant);
}
if(children!=null)

למה IF כפול ?

בכל מקרה, בדקת שהאינסופיות היא כתוצאה מרקורסיה של הפונקציה הזו ולא בחלק אחר של התוכנית (כמו חישוב הצעדים)?

פורסם
  • מחבר

כן האינסופיות היא בפונקציה הזאת..בדקתי ב-DEBUG...

תיקנתי לפי מה שאמרת וזה עדיין עושה לי את הבעיה של לולאה אינסופית..


private void printLeaves(int level, GameTreeNode node)
{
int player=participant;
Iterator<GameTreeNode> itChild=null;
if(node!=null)
{
ArrayList<GameTreeNode> children=node.getChildren();
if(children!=null)
{
itChild=children.iterator();
player = level%2==0 ? participant : presentBoard.opposite(participant);
while(itChild.hasNext())
{
GameTreeNode child = itChild.next();
printLeaves(level+1, child);
}
}
else
{
System.out.println("Level " + level + ": " + (player==PLAYER ? "whitePlayer" : "blackPlayer") + " at " + node.getMove().x + ", " + node.getMove().y);
}
}
else
{
System.out.println("There Is No Root.");
}
}

פורסם

תתחיל עם השינויים האלו ואחרי זה תבדוק ממה זה נובע, אין פה הרבה קוד, תסתכל למשל כמה ילדים יש לך בכל NODE וכו'.

פורסם
  • מחבר

עשיתי את השינויים וזה עדיין נכנס לי ללולאה אין סופית..

פורסם
  • מחבר

מצ"ב קובץ RAR של הפרויקט

אתה יכול בבקשה להריץ לראות את הבעיה ולבדוק את כיצד פותרים אותה ?

[attachment deleted by admin]

  • 2 שבועות מאוחר יותר...
פורסם
  • מחבר

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

מישהו יודע כיצד פותרים את הבעיה הזו ?

מצ"ב קובץ RAR של הפרויקט...

[attachment deleted by admin]

פורסם
  • מחבר

מישהו יכול להריץ את הפרויקט המצורף ויעזור לי בפתרון הבעיה וסידורה ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים