リファレンス(基本コマンド編)
Edaxのコマンドについて、ヘルプの説明だけではよくわからないものもあるので、仕様を整理してみました。コマンドにもいろいろな種類がありますが、今回は基本的なコマンドについて整理しました。それ以外のものについては下記リンクを参照ください(リンク切れのものは未作成です)
- 基本コマンド(本ページ)
リファレンス
対局系コマンド
init (i)
書式
init
盤面を初期状態に戻し、新たなゲームを開始します。
new (n)
書式
new
盤面をsetboard
コマンドで指定した開始局面に戻し、新たなゲームを開始します。setboard
コマンドを実行していない場合は、initと同じ効果です。
setboard
書式
setboard 開始局面
new
コマンドを実行した際の開始局面を指定します。開始局面を設定し、new
まで実行されたのと同じ効果を持ちます。開始局面の書式は、盤面を表す64文字と手番を表す1文字から成り立つ計65文字の文字列で、盤面の64文字はA1,B1,C1,…,H8の各マスについて以下の文字を並べた文字列です。
- b,B,x,X,* : 黒石のあるマス
- o,O,w,W : 白石のあるマス
- -,. : 空マス
上記以外の文字は無視されます。手番を表す1文字は、黒なら“b”,“B”,“x”,“X”,“*”のいずれか、白なら“o”,“O”,“w”,“W”のいずれかを指定します。
実行例
setboard ---------------------------O*------O**-----O--------------------*
最後の*
が黒番であることを、その前の64文字が盤面を表します。
undo (u)
書式
undo
1手戻します。mode
コマンドにより人対Edaxになっている時は2手戻します(つまり、1つ前の自分の手番まで戻ります)。
redo (r)
書式
redo
undo
で戻した手を再度1手進めます。mode
コマンドにより人対Edaxになっている時は2手進めます。
mode
コマンドにより人対Edaxになっている時は1手も進みません。このバグはVer4.4では修正されています。play
書式
play 手
指定した手を打ちます。複数手を指定することも可能です。手はa1〜h8の形式で入力し、大文字小文字は問いません。パスを入力する場合はpa
またはps
と入力しますが、明示的にパスを入力しなくてもパスの局面であればEdaxが自動的にパスだと判断して先に進めてくれます。
実行例
play f5d6c3d3c4
play tiger
のように定石名で入力することも可能です(初めて知りました)。あまり需要はないかもしれませんが、是非定石名で入力したいという方は、ソースコードを参照して指定可能な定石名を確認してください。568行目までがフランス語の定石名、568行目以降が英語の定石名だそうです。どちらも利用可能です。手
書式
手
打つ手をa1〜h8の形式で入力します。大文字小文字は問いません。パスを入力する場合はpa
またはps
と入力します。play
コマンドとは異なり、1手だけ進めることができます。
force
書式
force 手
Edaxが序盤に打つ手を指定します。手の書式はplay
と同様で、複数手を指定することも可能です。go
コマンドを実行した時に、force
で指定されている範囲であればEdaxは指定された手を打ちます。
実行例
force f5d6c3d3c4
play
同様に定石名で入力することも可能です。go
書式
go
Edaxに1手打たせます。Edaxは以下の優先順位で打つ手を決めます。
force
コマンドで指定された手- Bookが使用可能であり、Bookに登録された局面であれば登録されている手
- 指定されたレベルで探索を行った最善の手
mode (m)
書式
mode モード番号
黒と白のどちらをEdaxが持つかを指定します。モード番号の意味は以下の通りです。
- 0 : 黒-人, 白-Edax
- 1 : 黒-Edax, 白-人
- 2 : 黒-Edax, 白-Edax
- 3 : 黒-人, 白-人
Edaxの番になると、Edaxは自動的に手を打ちます。特にmode
を2にすると終局まで自動的に進みます。
実行例
mode 2
stop
書式
stop
Edaxの探索を止めます。プロンプト(>
)が出ていない状態でも入力して実行することができます。自動対局、go
コマンド、hint
コマンド等でEdaxが探索していて、その探索を中止したい場合に実行します。このコマンドを実行すると、mode
は3に戻ります。
quit (q) または exit
書式
quit exit
Edaxを終了します。quit,exitのどちらでも構いません。
eof[隠しコマンド]
書式
eof
Edaxを終了します。以下の条件を満たす場合のみ機能します(実質的に常に機能するものと思われます)。
- auto-quitオプション(これも隠しオプション)が指定されていない
- かつ、modeが2以外であるか、終局状態のいずれかを満たす
対局補助コマンド
hint
書式
hint ヒント数
その局面の候補手とその評価値を出力します。いくつ候補手を出力するかをヒント数に指定します。ヒント数を指定しなかった場合は1つ出力します。候補手は以下の優先順位で出力されます。
- Bookが使用可能であり、Bookに登録された局面であれば登録されている手を評価値が良いものから順番に出力
- 指定されたレベルで探索を行った手を評価値の良いものから順番に出力
実行例
>hint 6 depth|score| time | nodes (N) | N/s | principal variation ------+-----+--------------+-------------+----------+---------------------- book +0 G6 f8 C5 c6 B4 g5 H6 d2 book +0 C5 b6 D8 c6 C7 d2 B5 a5 book -4 G5 book -6 C6 c5 21@73% -02 0:02.473 36325175 14688708 B3 e3 E2 g4 G3 f2 B5 f8 H5 21@73% -03 0:00.055 556316 10114836 B5 d2 E2 c5 G6 g5 F7 f8 C6 ------+-----+--------------+-------------+----------+----------------------
analyze (a) または analyse
書式
analyze analyse
現在の局面から初手まで遡って、棋譜内容を解析します。実際に打った手と、それ以外の最善手の比較表が出力されます。出力される表の意味は以下の通りです。
- ply
- 何手目の手か
- level
- Edaxが解析した際の読みの深さとselectivity。Bookは使われないようです。参考:レベルの意味
- N alt.
- 実際に打った手以外の候補手の数。対象形などで実際に打った手と同じになる手は数から除外されています。
- played move/score
- 実際に打った手とその評価値。
- alternative move/score
- 実際に打った手以外の候補手でEdaxが探索した結果、最善と判断した手とその評価値。左側に、実際に打った手の評価値との比較が等号・不等号で出力されます
表の右側にコメントがついているのは、実際に打った手よりEdaxが探索した手の方が評価値が高かった場合のもので、コメントの意味は以下の通りです。
- Mistake
- Edaxが完全読み(最終局面まで読み、かつselectivity=100%)したもの
- Possible mistake
- Edaxが最終局面まで読み、かつselectivity<100%のもの
- Edax disagrees (strongly)
- Edaxが最終局面まで読んでいない場合。stronglyは評価値の差が5以上ある場合に出力されます
最後に出力される集計表には、黒と白のそれぞれについて以下の項目が出力されます。
- rejections : discs
- rejectionsの分母は、候補手が存在する局面(N alt.≠0)の内、Edaxが完全読みしていない数(つまり序中盤まで)
- rejictionsの分子は、その中でEdaxの探索した手の方が評価値が高かった手の数
- discsは、Edaxの探索した手の方が評価値が高かった手の、実際に打った手との評価値の差の累積(終盤でいう石損)
- errors : discs
- errorsの分母は、候補手が存在する局面(N alt.≠0)の内、Edaxが完全読みした数(つまり中終盤)
- errorsの分子は、その中でEdaxの探索した手の方が評価値が高かった手の数
- discsは、Edaxの探索した手の方が評価値が高かった手の、実際に打った手との評価値の差の累積(石損)
- error rate
- errorsのdiscs / errorsの分母で算出される値。つまり1手あたりの石損
実行例
> analyze N played alternative ply level alt. move score score move ---+-------+-----+-----------+--+--------------- 60 0 0 a8 +26 59 0 0 B7 -26 58 3 2 d1 +26 > +18 a8 57 4 1 G8 -26 > -30 B7 56 5 3 h8 +26 = +26 d1 55 6 1 G7 -26 = -26 B7 54 7 4 a7 +26 > +12 g8 53 8 1 B1 -26 < -10 B7 <- Mistake 52 9 6 a1 +10 < +14 g8 <- Mistake 51 10 2 B2 -14 > -20 G7 50 11 7 g1 +14 > +0 g8 (中略) 5 21@73% 5 C4 +1 > -4 C6 4 21@73% 3 d3 -1 > -2 g5 3 21@73% 4 C3 +1 > +0 C4 2 21@73% 2 d6 -1 < +0 f6 <- Edax disagrees 1 21@73% 0 F5 +0 | rejections : discs | errors : discs | error rate | Black | 10 / 17 : +34 | 5 / 11 : +42 | 3.818 | White | 10 / 18 : +28 | 3 / 11 : +22 | 2.000 |
vmirror[隠しコマンド]
書式
vmirror
盤面を上下反転します。
hmirror[隠しコマンド]
書式
hmirror
盤面を左右反転します。
rotate[隠しコマンド]
書式
rotate 角度
盤面を指定された角度だけ反時計回りに回転します。角度は90,180,270が指定可能です。
実行例
rotate 90
symetry[隠しコマンド]
書式
symetry 対称パターン
盤面を指定された対称パターンに従って対称移動します。対称パターンは0〜15の範囲で指定可能です。対称パターンの意味は以下の通りです。
- 0: 元の配置のまま
- 1: 左右反転
- 2: 上下反転
- 3: 反時計回りに180度回転
- 4: ホワイトラインを軸に反転(線対称移動)
- 5: 反時計回りに90度回転
- 6: 反時計回りに270度回転
- 7: ブラックラインを軸に反転(線対称移動)
8〜15は上記でさらに黒と白を入れ替えた状態になります。
実行例
symetry 3
opening[隠しコマンド]
書式
opening
現局面までの定石名(英語名)を表示します。既に定石を抜けた局面でも、抜ける直前の定石名が表示されます。
ouverture[隠しコマンド]
書式
ouverture
現局面までの定石名(フランス語名)を表示します。既に定石を抜けた局面でも、抜ける直前の定石名が表示されます。
debug-pv[隠しコマンド]
書式
debug-pv 手
指定した手(a1〜h8)について、その後の最善進行例を出力します。名称からすると作者のデバッグ用のコマンドと思われます。出力される情報は、探索結果を一時的に記憶しておくhashと呼ばれるメモリから取得しているため、予めhintコマンド等で該当手の探索を行っておく必要があります。
実行例
>debug-pv c2 pv = C2 g5:20@73%[+07,+07]; C6:19@73%[-07,-07]; e3:18@73%[+07,+07]; D7:17@73%[-07,-07]; c5:16@73%[+07,+07]; E6:15@73%[-07,-07]; d2:14@73%[+07,+07]; G6:13@73%[-07,-07]; f7:12@73%[+07,+07]; B5:11@73%[-07,-07]; e7:10@73%[+07,+07]; F8:09@73%[-07,-07]; b4:08@73%[+07,+07]; A3:07@73%[-07,-07]; e2:06@73%[+07,+07]; B3:05@73%[-07,-07]; h6:04@73%[+07,+07]; G4:03@73%[-07,-07];
出力される内容は、手、探索の深さ、selectivity、評価値の上限と下限(この意味は未調査)です。
ファイル操作系コマンド
save (s)
書式
save ファイル名
現在の対局の棋譜を保存します。保存形式はファイル名の拡張子によって決まります。以下の拡張子で保存することができます。
- .txt
- .ggf
- .sgf
- .pgn
- .edx
- .eps
- .svg
.eps
と.svg
は画像形式です(画像で保存できるというのは初めて知りました)。
実行例
save kifu.txt
setboard
により開始局面を指定した棋譜を保存する場合、.txt
形式は保存はできても読み込むことができないようです。開始局面を指定した棋譜は、.txt
以外のファイル形式で保存してください。open (o) または load
書式
open ファイル名 load ファイル名
指定された棋譜ファイルを読み込みます。open
でもload
でも機能は同じです。拡張子によってファイル形式を判断しています。以下の拡張子を読み込むことができます。
- .txt
- .ggf
- .sgf
- .pgn
- .edx
実行例
open kifu.txt
.svg
や.eps
形式は残念ながら読み込めません。その他のコマンド
help (?)
書式
help 対象カテゴリ
ヘルプを出力します。対象カテゴリは以下が指定可能です。
- options : オプションに関する説明
- commands : 基本コマンドに関する説明
- book : Book関連コマンドに関する説明
- base : データベース関連コマンドに関する説明
- test : テスト系コマンドに関する説明
対象カテゴリを省略すると、すべてのヘルプが出力されます。
実行例
help commands
version (v)
書式
version
バージョン情報を出力します。
コメント
返信ありがとうございます☆ミ とりあえず先日はネットでいろいろ調べて自分でつくってみました!lavoxさんの超丁寧なこのサイトと色んなサイトのおかげでコマンドも使えましたヽ(^。^)ノ bookて要するにその局面からの最善手だったり評価値だったりを高いレベルで計算させて保存させておくことができるedaxから見ればまさに本みたいなものですね。まあ細かいことはよくわかりませんがヽ(^。^)ノ とりあえず先日はレベル37深さ40でf5d6から始まる最善手進行とf5f4で始まる進行をb deviateで全部保存しました!やりかたあってるかわかんないけどとりあえずb fixとかb pruneやっときました。 評価値が自分みたいなゴミにもったいないくらい正しくなって満足です これからもお友達と対戦したりうまいひとの進行などをbookにしつつ世界一をめざします(´・ω・`)
お役に立ったようで幸いです。
最善進行は問題ないですが、b pruneは最善でない進行を削除する可能性があるのでご注意ください。
オセロ、最近盛り上がってきているようなので、お互い頑張りましょう!
どうもありがとうございます。
ネット上にedaxについて書かれた記事はありますが、コマンドの説明的なものが見つからなかったので情報を整理してみました。参考にしていただけると幸いです。
bookの作り方等についてはネット上にもいろいろと参考になる情報が見つかると思います。umigame先生の黒引き分け勝ちの記事などを参考にされてはいかがでしょうか。
こんにちは!どの記事もクオリティがすごすぎてびっくりですwwww 自分は今年くらいからオセロ始めたガチの初心者ですが、オセロの世界の深さ?にびっくりしてます。強い人はクソみたいよ強いし、ネット対戦楽しすぎですよね。で、オセロはソフトがかなり強いらしくてbookしだいでは更に強くすることもできる?と聞いてわくわくしました。実は自分の家にはなぜかデスクトップのスペックよさげなGANTZみたいなパソコンがあって、誰も使ってないしせっかくなのでbookの強化にガンガン使いたいなと思ってるのですがどっから手を付けていいのかわかりません><とりあえずコマンド覚えてます。やるなら徹底的にやりたいなと思ってるのですが、1から最強のbookを作る最も効率のいい方法を教えて下さい!