このサイトでは、C言語でのオセロ(リバーシ)のプログラム開発方法を解りやすく説明しています。初級者、初心者でも作れるオセロ実装のコツが満載です。
さて実際に作成できたプログラムを紹介します。とは言っても何度も言う通り1級~初段程度です、弱いです。テレビ局のアナウンサーに「プログラムに貴方は勝てますか?」と尋ねられ、「私が5級程度なので一度も勝ったことはありません。」とコメントした後、実際に真面目に勝負しました。するとなんとカメラの前で運悪く勝ってしまったので、もしかしてこのプログラム5級程度??
C言語で実装されていますがWASMの技術を使ってブラウザ上で遊べるようにしてみました。
今回採用した内容は次の通りです。
この順で重みをつけ、開放度理論でαβ法の子ノードの並び替え、その時最悪だと思われる手はカットしています。序盤は定石からの読み出しで、35手から7手読み、それまでは6手読み、45手から必勝読み、46手目以降から完全読みきりと言う形を取っています。
このプログラムを判定すると、大体35手程度から少し崩れます。また、42手から他のプログラムで完全読み切りをさせると、やはり悪手を打っているようです。
1手打つのに所要するスピードはCPU466Mhzで約2秒、35手目が5秒前後、47手目が10秒前後程度だと思います。
Linux/UNIX用(X11のみ使用)
Othelet ver1.8(tar.bz2ファイル) 52KB
Vine Plus に収録されました(2005/02/15)
othelet-1.8-0vl2.i386.rpm(VinePlus)
othelet-1.8-0vl2.src.rpm(VinePlus)
$ gzip -dc othelet.tar.gz | tar xvf -
もしくは
tar zxvf othelet.tar.gz
linux系 , IRIXは (GCC 3.x)
gcc -O3 othelet.cxx -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lstdc++
SunOS
gcc -O3 -o othelet othelet.cxx -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lsocket
となります。
「othelet」を実行後、右上にある「黒」「白」のいずれかのボタンを押すと始まります。
ソフト名 | Otheletが先手● | Otheletが後手○ | オプション | BearRev 1.3.3 | ●37 vs ○27 | ●20 vs ○44 | 「強い」選択 | Thell 2.3.2 | ●36 vs ○28 | ●27 vs ○37 | 「強い」選択 | Duoth 3.64 | ●29 vs ○35 | ●49 vs ○15 | 「コンピュータ9」選択 | vsOth 8.20 | ●22 vs ○42 | ●48 vs ○16 | 「狐」選択 |
---|
ソースコードをGitHub上に公開しています。
「Download Zip」を押してダウンロードしてください。
ビルドは「make」だけで可能です。
$ make
ファイル | 内容 |
---|---|
othelet.c | メイン関数 |
movement.c | オセロゲームのルール実装 |
alphabeta.c | αβの主軸 |
eval.c | 評価関数 |
jyouseki.c | 定石ファイルの読み込み |
book.dat | 定石ファイル |
オセロに強くなりたい人は下記を読むことをお勧めします。
オセロ(将棋等)のプログラムを開発したい人・ゲームプログラマーになりたい人は下記は持っていて損はないでしょう。
Copyright ©2024 pl_kyo.(since 2001/11/18)