世界最強のオセロを目指して… road to victory

世界最強のオセロを目指して
road to victory
B班 プレゼンテーション
メンバー紹介






リーダー
プログラマー
アルゴリズム
プレイヤー1
プレイヤー2
広報
富山 誠剛
林 芳樹
原 英太郎
平塚 正拓
はじま つよし
仲村 晋一朗
オセロを仕上げるにあたって
 参考文献
工学社出版
「楽しく学べるJAVAアプレット」
過去の先輩のサンプルプログラムの中でも
一番強かった去年のプログラムを作るにあたっ
て参考とされた文献と同じものを用いた。
オセロを仕上げるにあたって
途中経過であげた問題点
1)オセロが世界最強とは程遠い弱さである。
2)プレイヤーが打つとすぐコンピュータが打っ
てしまうので、そこに時間差を設ける。
3)ビジュアル面も可能なら改善したい。
オセロを仕上げるにあたって
問題点1)オセロが弱い・・・。
参考文献に掲載されていたアルゴリズムを打ち込み、コン
パイルを行い、起動させてみた。
しかし、そのプログラムは置くことができる位置をランダムに
選んで、置くというプログラムであったので非常に弱く、世界
最強オセロと呼ぶには程遠かった・・・。
横の図の黄色い部分にランダムに白の
石がランダムに置かれるというプログラ
ムでした。
そこで、
オセロを仕上げるにあたって
 (1)前回挙げた問題点を包括的に対処した。
まず、石を設置可能なマスにランダムに置くと
いうプログラムは明らかに弱く、方針を変えね
ばならなかった。
そこで、ポイント制を用いて、状況に応じて設
置場所を変えるという方針を用いた。
得点テーブル
 このような得点
テーブルを用いた。
重要度の高いマスを
高得点に、重要度
の低いマスを低い
得点にしている。
しかし、
オセロを仕上げるにあたって
ただ得点の高い場所に順に設置するだけで
は、あまり強いプログラムとはならなかった。
そこで、我々はある状況の場合はどう打つべ
きかという最善の一手を考えそれを if 文として
打ち込みプログラムに定石を記憶させていった。
しかし、色々な状況を考えると膨大な数となっ
てしまうので厳選して13個の定石を記憶させた。
定石一覧
定石一覧
定石一覧
これで世界最強とはいかないが、そこそこの
強さのプログラムが作れた。
オセロを仕上げるにあたって
問題点2)
プレイヤーが打つとすぐにコンピュータが
打ってしまうので、時間差を設ける。
その問題はソースを変えて、改善された。
オセロを仕上げるにあたって
問題点3)ビジュアル面も可能なら改善する。
・・・。
オセロを仕上げるにあたって
問題点3)
時間の関係上無理でした( ̄□ ̄;)!! W
オセロゲーム作成を通じて
オセロの駒の置き方を、αβ法やミニマックス
法といった手法を、様々な参考書を読み理解
し、アルゴリズムを打ち込もうと試みたが、自
分たちが理解しアルゴリズムが打ち込めるも
のは、ポイント制であった。一からオセロを作
るにあたって、限られて時間と専門知識が全
くない私たちにとって、ポイント制を採用しそ
の中で強いオセロを作ることが最善の方法で
あったと思われる。