数値解析 ~オセロゲームのプログラム~

数値解析ⅡーI
~オセロゲームのプログラム~
リーダー:溝口友基
プログラマー:白鳥翔
アリゴリズム作成:三木浩志
プレーヤー:高橋宏一
アルゴリズム・パワーポイント作成:加藤
尭
参考プログラム: H18 A‐グループ
項目
1、基本方針
2、基本アルゴリズム
3、点数配置を決める過程
4、結果
5、考察
1、基本方針
角を取ることを目指す
序盤取る枚数をなるべく少なくする
1番外の枠を取り、自分の色で統一する
2、基本アルゴリズム
オセロボードの個々の場所にその場所の重要
度から点数を配置し、自分が置く場所と、そこに
置いた時にひっくり返る場所の点数の合計が高
い所を優先的に取っていくアルゴリズムとした。
このことで、ボード上の配置点数が同じ場所で
も、ひっくり返る場所も考慮することができるた
め、より状況に合わせた手が打てる。
点数配置
アルゴリズムの例
A: -50+(-10)×2=-70
B: -10+(-10)×2=-30
よってBを選択する
3、配置点数を決める過程
4×4の点数配置
自分の取る枚数が少なくなるようにする
4×4の1つ外側
ゲーム序盤に置かないようにする場所
「-50」の配置理由
Aの場合、ひっくり返る枚数は「-10」が4枚、打つ場
所の点数は「-10」より合計は-50。
Bの場合、ひっくり返る枚数は「-10」が1枚、打つ場
所の点数は「-50」より合計は-60。よって、Aを選ぶ。
1番外の枠
角に近いため、あまり置きたくない場所。た
だし、状況に応じて置かなければならない。
「-170」の配置理由
Aの場合、ひっくり返るところの点数合計は150、打
つ場所の点数は「-170」より合計は-20
Bの場合、ひっくり返るところの点数合計は170、打
つ場所の点数は「-170」より合計は0
この「-20」、「0」はひっくり返る枚数の多くなる後半戦
では比較的小さくはない点数である。
角の斜めとなり
できる限り置きたくない場所
角
置けるチャンスがきたらなるべくおきたい場所
ただし下図のように角を自分を自分が取った
跡に「A」のようなマスが残っているときになる
べくそこを埋めるようなプログラムを補ってお
いた。
4、結果
改良前のプログラム
対戦回数20回 プレーヤ-の勝利数12回
プレーヤー勝率60%
改良後のプログラム
対戦回数20回 プレーヤ-の勝利数9回
プレーヤー勝率45%
5、考察
僕たちのアルゴリズムは、最初から決めてる点数
配置に従って打つ手を決めさせるものなので、一般
化された打ち方となり、相手の動き、または変化に
対応しているアルゴリズムとは言いがたい。
よって相手の手によって点数配置を変えていくア
ルゴリズムにすればさらに強くなると思われる。
しかし、そのようなプログラムを作るとなると、膨大
な手間と時間がかかるので今回着手するまでには
至らなかった。