Transcript Document
数値解析Ⅱ ~オセロのアルゴリズム~ ~メンバー~ リーダー:河野 敬 プレゼン担当:杉本 亮平 班員;桑原 正樹(プログラマー) 小西 基樹(プレイヤー) 土屋 裕之(アルゴリズム) 高見 朋希(アルゴリズム) <はじめに> a • ルールは一般のオセロ ゲームのルールを用いる。 b 1 2 3 4 5 6 7 • 黒をプレイヤー、白をコン 1 ピュータとし黒を先手とする。 2 \ <盤上の各マスの呼び方> 右図の様にそれぞれのマ スに数字を割り当てる。 • 例:☆(a,b)=(3,6) 3 4 5 6 7 8 ●○ ○● ☆ 8 COMは以下のルールに従い、最も獲得点数の高いマスに石を置く 下図のように各マスに点数をつけ、置いたマスの点数を得る。 返した石一つにつき5点得る。 石の置いてあるマスは考えない。 (マスの点数+返した石の数×5)の合計が高くなるマスに石を置く。 点数が同じ場合はランダムとする。 100 -30 40 30 30 40 -30 100 -30 -30 15 15 15 15 -30 -30 40 15 30 20 20 30 15 40 30 15 20 0 0 20 15 30 30 15 20 0 0 20 15 30 40 15 30 20 20 30 15 40 -30 -30 15 15 15 15 -30 -30 100 -30 40 30 30 40 -30 100 ・石を返せるかどうか調べる。 ○ Ⅰ 全ての黒マスについて、その回り ○ ○ に空マスがあるかどうか調べる。 ○ Ⅱで決めるマスはここで見つけた ● ● ● ● ○ 空マスである。 ● ● Ⅱ 置きたいマスを決める。 ○ Ⅲ Ⅰで調べた黒マスへと戻りその方 向について調べる。 その先のマスを調べ、黒石なら 更に先を調べ、空きマスなら白 石を置くことができずⅠへと戻る。 白マスだと置ける。 ・パスについて 上のⅠ~Ⅲを繰り返して も置く場所が無い場合 はパスとし、相手の番と する。 ・全滅について CPUと人間が連続して パス→ゲーム終了 ○ ○ ● ● ● ○ ● ● ○ ● ○ ● ○ ○ ● ○ ○ ○ ● ● ○ ○ ○ ● ● ○ ● ● ○ ● ● ○ ● ● ○ ● ● ● ● ● ○ ● ・終了条件 1. 盤上のマスがすべて埋まる。 2. 全滅が起こる。 このとき石の数の多い方が勝利。 問題点 ・マスに得点を割り振るだけでなく石を返すことで得 点を得るようにするとより複雑な手を打てるが、最善 の手を探すには桁違いの時間がかかってしまう。 ・序盤は黒マスが少ないのでCOMのステップ数が 少なくて済むが、後半になるにつれて黒マスが増え るためステップ数が増えてしまう。 これに対しては、周り8マスが全て埋まった黒マスは 次の番からは考慮に入れないプログラムを組めば良 い。 ・目先の数だけを追求する手となり先の戦局に対し ては弱い手となりうる。 考察 • 今回はコンピュータのステップ数やプログラム の簡易化を考慮に入れたが、強さを求めるな ら全ての盤面について、全ての手とそれに対 する相手の対応まで考えるのが一番だろう。 しかし、このプログラムを組むと膨大な量と なってしまうため、強さとステップ数とのバラン スが大切である。