どもども赤槻です。
このまえ情報工学科に配属され、プログラム演習がやっとはじまりました。
その授業の期末試験は、オセロゲームのCPUのルーチンを作ることなんだそうですよ。
大変そうですね。
しかも強かった人から順番に点数をつけていくとか…なんとか…
相対評価かよ!きついな
だから少しはまじめに考えようかとおもったんですが、なんせオセロってどんなんだか忘れたので、とりあえずググってみました。
8×8で黒が先手だそうです。基本的には最初にの中央四マスに、交互に白黒を並べて始める。
それは大体わかりました。
では次にどういう思考を行わなければいけないかについて考えます。
思考
ルール
・そのマス(座標?構造体?)は空いているか。
・ほかの石をひっくり返すことができるか。
人間的思考
・そのときにいくつひっくり返すことができるか。
先読み計算
・自分がそこに置くとどうなるのか。
・相手が次にどこにおいてくる可能性があるか。場合分け
・そこにおかれるとどうなるか
以上で一手読み
・n手先にはどうなっているか?可能性をすべて記憶する。
判断
・最善の手を判断する。
自分の色が多い。隅をとっている。端をとっている。相手にこれからとられる可能性が少ない。相手が隅の一個隣においている。序盤ではとりすぎない。自分の打てる場所が多い。相手の場所が少ない。
問題は何手先まで読めるかです。
オセロは二人零和有限確定完全情報ゲームらしいので、コンピューターの性能が良ければ、わざわざ序盤終盤などと分けずに先読みしてしまえばいいということになります。
むしろオセロの序盤は手が決まっているので、あらかじめスーパーコンピューターで計算しておけば、いいのではないかという話もあります。最初の5-6手くらいは計算も必要ないんじゃないかと。
とりあえずこれで、ためしにルーチンを作ってみます。
[0回]
PR