Othello GameOthello Game
Final project in java course
Generated by:
Nahum Vishne,
Gadi Friedman,
Ishai Rosenberg
המשחק כללישחקן 1. לכל כאשר מתחיל חיילים 2המשחק
. בתמונה המתואר במצב
.2 ) בסיום ) כאשר מושג לדוגמא אפור ניצחון. אפורים הם הלוח על הכלים רוב המשחק
יש 3. האדום צדי משני כאשר אדום הופך אפור. אפורים חיילים
הוא 4. בו במקום רק חייל להציב רשאי האפור. אדום הופך
המצבים 5. משלושת באחד מסתיים המשחקהבאים:
. . שוויון יתכן מלא הלוח
יכול לא שחקן אף . נוסף חייל לשים
. שוויון יתכן
אין השחקנים לאחדכלים.
אלגוריתם מינימום-מקסימוםאלגוריתם מינימום-מקסימום
.תיאור כללי.1
.Othello מימוש עבור.2
.חקר ביצועים.3
:MinMaxתיאור כללי של אלגוריתם 1.
- הגדרת ניקוד מוחלט לכל מצב של הלוח.
הגדרת פונקציה שמקבלת לוח בלבד ומחזירה מספר.
)ללא תלות בשחקן שכרגע תורו(.
. השני נקרא Minimum שני שחקנים, האחד נקרא -Maximum.
שואף להביא את מצב המשחק לניקוד Minimumהשחקן .מינימלי
שואף להביא את מצב המשחק לניקוד Maximumהשחקן .מקסימלי
: - המשךMinMaxתיאור כללי של אלגוריתם 1.
כל שחקן "יודע" שהשחקן האחר שואף לניקוד עם סימן הפוך -ממנו.
בניית עץ של כל המסעים האפשריים עד לעומק מסוים.-
)גובה העץ נקבע לפי רמת המשחק(.
: Othelloמימוש עבור .2
הגדרת ניקוד מוחלט לכל מצב של הלוח:-
:א( קביעת ערך לכל משבצת בלוח המשחק
80-1020202020-1080-10-30-2-2-2-2-30-10
20-23113-220
20-21111-220
20-21111-220
20-23113-220
-10-30-2-2-2-2-30-10
80-1020202020-1080
שימו לב לניקוד הגבוה של הערה:הפינות.
: - המשךOthello עבור MinMaxמימוש .2ב( הגדרת ערך לכל מצב של משבצת בלוח :המשחק - 1משבצת עם דיסק אדום =
= 1משבצת עם דיסק אפור =
= 0משבצת ריקה =
=00000000
00000000
00011101001-1-1-1-10
00011-100
00000100
00000100
00000000
:ג( ניקוד מצב הלוחלוח הניקוד:
80-1020202020-1080
-10-30-2-2-2-2-30-10
20-23113-220
20-21111-220
20-21111-220
20-23113-220
-10-30-2-2-2-2-30-10
80-1020202020-1080הכפלה
סיכום
00000000
00000000
00011101
001-1-1-1-10
00011-100
00000100
00000100
00000000
00000000
00000000
000113020
001-1-1-1-2-0
00011-100
00000300
000002-00
00000000
21
:לוח המצב
ד( בדיקת כל המסעים : האפשריים
2דוגמא: משחק ברמה :
MAX
MIN
MAX
2,4
1,5 5,68,1
15-12 40
15-
10 5-15
11540 -1512 10 1420
MAX
MIN
MAX
2,4
1,5 5,68,1
4,61,5
2,5
Selected move is 4,6
4,51,7 1,2 2,4
ד( בדיקת כל המסעים : האפשריים
2דוגמא: משחק ברמה :
10
:חקר ביצועים.3
ב( מחשב נגד מחשב ברמות .שונות
א( מחשב נגד מחשב עם לוחות ניקוד .שונים
11111111
11111111
11111111
11111111
11111111
11111111
11111111
11111111
לוח עם ניקוד יתר לפינות:•הלוח הטריוויאלי:
200100-100100100100100-200
100-200--10-10-10-10-200-100
100-105225-10100
100-102112-10100
100-102112-10100
100-105225-10100
100-200--10-10-10-10-200-100
200100-100100100100100-200
שני הלוחות הפסידו ברוב מוחלט של המשחקים נגד הלוח ניקוד שכבר הוצג גם כאשר שחקו ברמה גבוהה יותר.
ב"רוב" ולא בכל כיון שיש גורם אקראי בבחירה הערה: בין מסעים שונים עם אותו ניקוד
א( מחשב נגד מחשב עם לוחות ניקוד :שונים
ב( מחשב נגד מחשב ברמות .שונות
כאשר שני השחקנים משתמשים בלוח הניקוד שניבחר, - השחקן ברמה הגבוה יותר ניצח ברוב מוחלט של
המשחקים.
תזכורת: לוח הניקוד שניבחר:
80-1020202020-1080-10-30-2-2-2-2-30-10
20-23113-220
20-21111-220
20-21111-220
20-23113-220
-10-30-2-2-2-2-30-10
80-1020202020-1080
חקר ביצועים – מסקנות..3
רמת המשחק נקבעת לפי הסעיפים הבאים:
)הסעיפים מסודרים לפי סדר חשיבות(
לוח הניקוד•
(level גובה העץ )•
מי משחק ראשון – כנראה לא משפיע בכלל •)בגלל גורם האקראיות של האלגוריתם(
מאפייני המשחקמאפייני המשחק
.המשחק )mode( מצב.1
.רמת המשחק.2
.הוספות.3
המשחק 1. :מצב
, משתמש מצב מצבים בשני להתנהל יכול המשחק. מחשב ומצב
משתמש . במצב על כאשר המחשב נגד משחק השחקן , הרמה את לקבוע וכן שמו את להכניס השחקן
. נגדו ישחק שהמחשב
. כרגיל לשחק מיועד זה מצב
מחשב והן במצב באדומים הן משחק המחשברמתו, את לקבוע המשתמש על כאשר באפורים
. הצדדים מן אחד כל של
" , י ע האלגוריתם ביצועי את לבדוק מיועד זה מצב , בין השוואה שונות משחק רמות שתי בין השוואה
.' וכו שונים ניקוד לוחות
.2: המשחק רמת
. " משחק כל בתחילת המשתמש י ע נקבעת המשחק רמת
בין נעה -2היא . 5ל
- מ . 2בפחות הלאה חושב לא בעצם המחשב
- מ .5ביותר מדי איטי המשחק
:הוספות3.
ישנם הלוח .3על תפריטים
, gameבתפריט המשחק את לעצור אפשרות ישנה , לבצע ריצתו את המהלך undoלהמשיך עבור
. , ) חדש) משחק להתחיל או האחרון הכפול
, Helpבתפריט המשחק כללי את ללמוד אפשרות ישנה. התוכנית מתכנני על לקרוא וכן
המהלך ) Optionsבתפריט רמז לבקש אפשרות ישנהכל ( את לראות או משחק היה המחשב שאותו
. האפשריים המהלכים
: תפריטOptions
מסעים רמז.אפשריים.
מהלך אחרון שבוצע.
נתונים ) DataבסיסBase)
משתמש כל עבור נתונים מחזיק הנתונים בסיס ) רמת) כולל המשחק בתחילת שמו את שהכניס
.) המשחק ) בסוף כמה כמה והתוצאה המשחק
. ממוינת השיאים עשרת רשימת תתוחזק כן כמו
ביישומון: )שאילתא . appletמתבצעת נפרד( : שאילתות סוגי שני לשאול ניתן
,) תוצאות ) כל את הכולל שם לפי אישי מידע. שחקן אותו של המשחקים
, השיאים עשרת רשימת , “ המשחק רמת פ ע כל קודם נקבע ציון כאשר
. התוצאה לפי מכן לאחר ורק
: גישות שתי יש הנתונים לבסיס
אוטומטית . גישה כלומר המשחק בסיום . השחקן שם לפי המשחק נתוני הכנסת
השחקן אם ורק משתמש במצב רק זמין. שמו את הכניס
: התוכנית חלקי
1. Graphic design )GUI(.
2. The algorithm.
3. Game manager.
4. Implementation of the game board.
5. Data Base design.
6. Web site.
Othello-על- אחראי
Game manager(Flow manager) GUI
(Dialogs, Board)
MinMax
BoardMove
Actions Listener
DataBaseButtonsהנתונים- לבסיס שאילתא
Web site:
www.tau.ac.il/~vishnena
www.tau.ac.il/~gedal2
Research version: