פיתוח משחק אבאלון

bitrich

New member
פיתוח משחק אבאלון

שלום רב, האם מישהו יכול לסייע לי בפיתוח אלגוריתם של משחק אבאלון - עבור אופציה של שחקן נגד המחשב? יצרתי מחלקה שמקבלת מצב לוח נתון ובונה עץ שמחשב עד 4 מהלכים קדימה -את התגובות האפשריות עבור כל מהלך.כל רמה בעץ מכילה מטריצה שמייצגת צעד של המשתמש/ של המחשב ומערך תגובות אפשריות של המחשב/ של המשתמש לצעד הזה. עלי לבחור בכל רמה בעץ את הצעד המועדף ביותר (עבור מי שזהו תורו) ולהגיע למצב שבו המחשב יבחר את הצעד המועדף עבורו כאשר תגובת המשתמש המועדפת לצעד הזה לא תגרום לסיכון הכדורים השייכים למחשב וכמובן שלא להפלתם לשולי הלוח. השתמשתי ב- MINIMAX אבל זה לא ממש עזר, משום שאין לי דרך לקבוע מהו הצעד המועדף. האם למישהו יש דרך / כיוון / רעיון?? בתודה מראש.
 

Darakan

New member
היוריסטיקה תלויה בך

זו כל החוכמה :) או שפשוט תנסה להריץ בגוגל Abalone heuristics, ותראה מה יצא, מהצצה ראשונה שלי עושה רושם שיש כמה דברים נחמדים.
 

bitrich

New member
תודה רבה, אבל...

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

somebodddy

New member
אבל אם זה לפרוייקט לקורס

אז לא אמורה להיות בעיה, לא?
 

Alkhimey

New member
תתחיל מהדרך הנאיבית

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

pseudoDust

New member
that sounds like a good plan

i think you should try to give wight to the "push ability" i.e. how many rows of 3 the player has meybe give a negative waght to the number of lone(single) units...1 this sounds like a very interesting problem, is ther a chance you can provide an api to your code so i can try playing around with some AI models? or the sorce if you dont meand sharing it what are you writing in anyway?1
 
למעלה