פורסם 2008 בפברואר 2617 שנים בניתי משחק איקס עיגול ב JAVA P VS P (שחקן נגד שחקן) אני צריך עזרה בבניית האלגוריתם של שחקן נגד מחשב, יש מצב עוזרים לי?
פורסם 2008 בפברואר 2617 שנים יש כמה אפשרויות שצריך לבדוק, תוכל לבנות מהם AI שתמיד מנצח או לעשות איזה ערך רנדומלי של הפסד או מה שבא לך.טוב התחלתי לרשום פה את כל האלגוריתם ואז הבנתי שיש מלא מקרים אז פניתי לגוגל.יש לך 6 מקרים שאתה צריך לפעול בהם בדרך מסוימת כדי לנצח או להוציא תיקו.הדרך שמוצגת באתר שמצאתי, נראת לי סבבה לגמרי, מה שהיא אומרת זה פשוט לחפש אחרי דפוסים מסוימים בלוח ולפעול בהתאם. ההסבר:http://webster.cs.ucr.edu/AsmTools/MASM/TicTacToe/ttt_1.htmlתוצאות מגוגל:http://www.google.co.il/search?hl=iw&client=firefox-a&channel=s&rls=org.mozilla%3Ahe%3Aofficial&hs=kT6&q=%22tic+tac+toe%22+algorithm&btnG=%D7%97%D7%99%D7%A4%D7%95%D7%A9&meta=
פורסם 2008 בפברואר 2917 שנים מחבר בניתי את המשחק! הבעיה היא שהקוד מאוד עלוב. רב הקוד מתכם הרבה IFים וזה רמה ממש עלובה, אולי מישהו יכול לעזור לי לשפר אותו?נגיד דוגמא שאחת היא הבדיקה של ה"ניצחון עתידי" כלומר, בתור הבא המחשב/השחקן מנצחים. עשיתי את זה כך: יש מספר מסויים של אפשריות לניצחון בלוח בדקתי אותם ואז סיבבתי את הלוח ובדקתי שוב כך אני עושה את זה 4 פעמים עד שהלוח חוזר לקדמותו. יש איזה שהיא דרך לעשות את זה ברקורסיה או פחות טוב לולאות?אם לא הבנתם תבקשו אני יעלה את הקוד של אותה פונ' שבודקת
פורסם 2008 בפברואר 2917 שנים ברור שיצא קוד מכוער ומלא בתנאים.כי כל המשחק הזה תלוי בתנאים של המצב על הלוח.אתה יכול לנסות לשים חלק מהתנאים בcase, ואז אולי זה יראה לך "יפה" יותר.
פורסם 2008 במרץ 217 שנים לא יודע מה עשית אבל אתה עובד בJAVA אז תתחיל לחלק למחלקות את כל העסק.תבנה מחלקה של עץ כללי עם רשימה מקושרת בתוכה(בנים)תבנה מחלקה של שחקן מאורגןהפונקציה עצמה של המחשב לא כזאת מסורבלת ומכוערתיצירת כל המצבים->נתינת ציון לכל אחד->לעבור על העץ כולו לפיו לבחור את הצומת שעדיפה.
פורסם 2008 במרץ 317 שנים מחבר אז זהוא שאין לי מושג לפי מה לתת ציון לכן, בדקתי מצבים קיצוניים כמו ניצחון והפסד ואת השאר עשיתי ראנדומלי.מה שאני ניסיתי להגיד זה שהפונ' לבדיקה של המצבים הקיצונים היא ארוכה יחסית ויש בה הרבה ורק IFים. אני יודע שבפרוייקטים זה לא אמרו להיות כך !אסור! שזה יהיה כך. איך אני משפר את זה????
פורסם 2008 במרץ 317 שנים אם אתה שומר את כל הלוחות מראש כמו בדוגמא שהבאתי, אמורה להיות לך רק פונקציה אחת שמשווה בין לוחות וגם שם לא צריכים להיות יותר מגג 3 if..
פורסם 2008 במרץ 317 שנים מחבר אני לא שומר שום לוחות. אני עושה את הבדיקות של אותם לוחות על לוח אחד. (אני לא שומר לוחות ומשווה אלה אני עושה את הבדיקות על לוח אחד)
פורסם 2008 במרץ 317 שנים אני לא יכול בדיוק לחשוב על פונקציית הבדיקה אבל בכל המשחקים האלה כשבונים אותם הם כמובן מבוססי רקורסיה ולא IFים
פורסם 2008 במרץ 317 שנים מחבר //shapeSign = the shape that needs to be check for a win// if(this.shapeFlag==0){ // if( array[0][0]==array[0][1] && array[0][1]==shapeSign ) if( (array[0][2]!=1) && (array[0][2]!=0) ){ array[0][2]=0; return true; } if(array[0][0]==array[0][2] && array[0][2]==shapeSign) if( (array[0][1]!=1) && (array[0][1]!=0) ){ array[0][1]=0; return true; } if(array[0][1]==array[0][2] && array[0][1]==shapeSign) if( (array[0][0]!=1) && (array[0][0]!=0) ){ array[0][0]=0; return true; } // if( array[0][0]==array[1][1] && array[1][1]==shapeSign ) if( (array[2][2]!=1) && (array[2][2]!=0) ){ array[2][2]=0; return true; } if(array[0][0]==array[2][2] && array[2][2]==shapeSign ) if( (array[1][1]!=1) && (array[1][1]!=0) ){ array[1][1]=0; return true; } if(array[1][1]==array[2][2] && array[0][0]==shapeSign ) if( (array[0][0]!=1) && (array[0][0]!=0) ){ array[0][0]=0; return true; }// } // if( array[1][0]==array[1][1] && array[1][1]==shapeSign ) if( (array[1][2]!=1) && (array[1][2]!=0) ){ array[1][2]=0; return true; } if(array[1][0]==array[1][2] && array[1][2]==shapeSign ) if( (array[1][1]!=1) && (array[1][1]!=0) ){ array[1][1]=0; return true; } if(array[1][1]==array[1][2] && array[1][2]==shapeSign ) if( (array[1][0]!=1) && (array[1][0]!=0) ){ array[1][0]=0; return true; } return false; } public boolean checkFutureWin(int array[][], int shapeSign){ 0 - מסמן עיגול1 - מסמן איקסזה מה שכתבתי ואין לי מושג איך אני יכול לעשות את זה ברקורסיה...עזרה בבקשה
פורסם 2008 במרץ 317 שנים אתה יכול לעבור ליצוג של מחרוזות ואז זה יותר יפה ואפשר לעשות דברים כמו מציאת התאמות ע"י ביטויים רגולרים וכו':http://webster.cs.ucr.edu/AsmTools/MASM/TicTacToe/ttt3_1.html
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.