麻雀対戦機 開発日記 2008年9月14日 各システムの詳細コンピュータ麻雀対戦プラットフォームの構築に関して、以下のようなプログラムがあったらいいなぁという話を前の日記に書きました。
ここからは、これらがどういうものになるのかについて書いていきます。 まずは、対戦機本体について。 これは、このシステムのメインになるもので、コンピュータ麻雀のプログラム同士を対戦させるソフトです。 dllの形で用意された麻雀の思考ルーチンを読み込んで、麻雀のルールにしたがって自動的に対戦を行います。 アルゴリズムの優劣を評価するのが目的ですから、何千局とか何万局とかの局数が必要になってくると思います。 対戦結果は牌譜という形で出力し、分析ソフトや牌譜再生ソフトの方で読み込めるようになる予定です。
コンピュータ麻雀選手権のような大会を行うことが目的なので、複数の麻雀アルゴリズムに対して、トーナメント戦やリーグ戦など様々な形式で対戦カードを決められるように出来るといいなと思います。 また、東風荘や天鳳などで採用しているようなレーティングシステムも取り入れたいです。ただ、これは対戦結果が出た後でも計算できますので、分析ソフトの方の仕事かも知れません。
麻雀のルールについては、当面はいわゆる一般的なルールを採用するつもりです。割れ目やご祝儀といったものは採用するか分かりませんが、赤牌のあるなしくらいは選択可能にした方がいいでしょう。 世界コンピュータ選手権(赤あり部門)とか出来ますので。 サンマについては、自分で実際に打つのは好きなのですが、コンピュータ麻雀としてはそれほど必要ではないと思いますので、当面考えていません。
対戦のログは、牌譜という形の残すわけですが、そのフォーマットをどうしようかというのが考えどころです。当面は東風荘の牌譜形式に合わせておけば、東風荘用に作られた再生ソフトがそのまま使えて便利なのかな、とは思います。 ただ、対局数が何千とか何万とかになってくると、ファイル容量が大変なことになってくる気もしますので、もしかしたら独自の形式を定義しないといけなくなるかも知れません。
それから、このプログラムを作る上で気を付けたいのは実行速度です。なるべく多くの対局数を稼ぎたいので、実行速度は速いにこしたことはありません。ま、実行時間のほとんどは思考ルーチンの部分で使われるのでしょうが。 最近はマルチコアのCPUが主流なので、マルチスレッドに対応させておくのもいいかなと思います。ただ、対戦機から呼び出される思考ルーチンdllの方も対応が必要になってくるので、これも考え物です。
|
Copyright 2006-2019 あらの(一人)麻雀研究所 All rights reserved. あら ( ara999 あっと gmail.com ) |