85DATA OTHELLO PAGE ホームへ
MYCARオセロプログラムの作り方掲示板BLOGプロフィール

OthelloPage HOMEオセロプログラムの作り方 

※「Othello、オセロ」は株式会社メガハウスの登録商標です。

0.はじめに

はじめに、書きますがこのサイトを見てプログラムを作成しても「強いプログラム」にはなりません。私のソフトよりも高度なもの(強いソフト)は数多くありますし、より詳しく解説されているサイトもあります。

ではなぜ、こんなページを作成したのかと言うと、少しプログラムを組める人から、「自分よりも強いコンピュータプログラムって、どうやって作るの?」という質問をされる事がしばしばありました。
自分自身も思い返してみると、かなり試行錯誤を繰り返した記憶があります。

ここに書いてある事は、オセロプログラムを作成する上での”基本”しか書かれていません。
これらのプログラムを行う事で、作者自身よりも強いプログラムにはなると思います。(もちろん、あなたがオセロ初心者であればの話です)
「ほんの、ちょっと強いプログラム」ぐらいにはなるかもしれません。

ここでは、プログラム初心者(少なくとも、人間対人間のオセロプログラムが作れる程度スキルは必要です)を対象に書いてみました。
「どうしたら、プログラムに思考ルーチンを実装できるのだろうか?」と言う方には、多少参考になるのではないかと思います。


さて、強いオセロプログラムを作れる人の条件は以下の通りだと思っています。(・・間違っているかもしれません。所感です)

(1) 作者のオセロスキルが高い(オセロが強い)
(2) 作者のプログラム能力が高い
(3) 作者の数学的能力が高い
(4) 作者の論理的能力が高い

・・・で私は?と言いますと
(1)はダメです。オセロ初心者レベルですね。普通(素人?以下「超初心者」と記します)の人には負けないかもしれませんが・・・
(2)もダメです。
あれ!?・・・・気が付いたら全部ダメみたい。(書いて損した)

オセロの強い人と弱い人で、(2)以降の能力が同じならば、「オセロの強い人」が作成したプログラムが強くなるのは当然です。

では・・・
オセロの強い人で、(2)以降のスキルが低い人と
オセロの弱い人で、(2)以降のスキルが高い人とが、
プログラムを作成したら、おそらく後者のオセロプログラムの方が強いものになると思います。
つまり、何が言いたいのかといえば、「オセロが弱い人」でも「ある程度強いオセロプログラム」は出来るという事です。
(プログラム能力が高ければ、オセロスキルが低くても強いオセロプログラムになると言う意味です)

一番大きい要因は「プログラム能力の高さ」だと思います。

しかし、最低限のオセロ知識は知っておく必要はあると思います。

超初心者が認識しているオセロの打ち方を考えてみました。

(1) 多く石を返す(自分の石を多くするように打つ。たくさん裏返す)
(2) 隅を取ると有利 
(3) 隅の隣には置かない
(4) 隅の2つ隣に置く(相手に隅の隣を置かせたいから)
(5) 辺と多くとる (すぐには相手の石になりずらいから)
(6) 辺を取るために、辺の内側に置きたくない。相手に置かせたい。
(7) だから、中央4×4(ボックス)をまずは埋めていく。

・・・多分こんな感じかな。結構当たっているような気がしますが、いかがでしょうか?
(2)と(3)は多くの方が意識しているでしょうね。
それを発展させていくと(4)以降の思考につながっていっているのではないでしょうか?

この上記の考え方は一旦、忘れた方が良いです。
超初心者同士の対戦であれば、有効かもしれませんが、
この思考では、ちょっと強い人と対戦したら、ボロ負けになってしまうでしょう。

なぜならば、この中には「置ける箇所数」の要素が無いのです。

高校当時、私は全くの独学でオセロを打っていました。特にオセロの本も読んでいなかったのですが、
友人に一人強いのがいまして、ちょっとしたコツを教えてもらったのです。

(1)「序盤は多く石を返すな」
  自分の石の色が多くなると、次に置ける場所が少なくなってしまうから

(2)「表面積を取るな」
  これって意味が初め分かりませんでした。
  要するに、「自分の石を相手の石が囲むようにしろ!」という事でした。
  1.の理由と同じです。
  兎に角、自分が置ける場所を多くする。逆に言えば相手の置ける場所を少なくする。

この2点だけ覚えただけで、他の友人には負ける事はなかったのです。

他にも様々な要素がありますので、調べてみてください。
 (私自身もオセロ初心者なので、この記事内に誤った内容があるかもしれませんので・・・・)

本を買うのも良いと思います。
初心者の方にオススメなサイトはこちら→さきとぴよのオセロこうざ
すごく、分かりやすくオセロの事を解説されています。

オセロ知識を作者が習得するのではなく、それらをプログラミング出来れば、
作者よりも強くなるはず・・・だと思いませんか?

   B-NEXT.GIF - 453BYTES