将棋ソフト開発(仮)スマートフォン用の表示で見る将棋ソフト開発(仮)将棋のソフトを作るのです。この広告は、90日以上更新していないブログに表示しています。第二局PCメイン機が壊れました。現在ほとんどのことが何もできません。いつ直るのか、本当に直るのかも見通しが付きません。同一のマザーボード、しかも内部のチップセットやBIOSまでもが同一のマザーボードを発見してこないと直りそうにありません。製造中止になってるマザーなので、日本中の中古屋に在庫を確認中です。マザーの内部シリアル番号まで合わせての問い合わせなので、嫌な顔されまくっております。あぁ、もうほんと最悪。電王戦は第二局が終了しました。ルールなどに関しては書かないようにします。(良い印象を受けなかったので)。実際の所、なぜそうゆうバグが発生したのかは分かりません。人のソフトがどうなってるのか、想像すら付かないことがあります。予想ですが、USIから送られてきた「現在盤面」までの生成過程で、Selene側でも「合法手」であるかどうかのチェックがおこなわれていたのではないでしょうか?ちなみに私のソフトでは、私はそれは無意味だと思っているので、やったことがないのです。Selene側の処理は分かりませんのが、私のソフトの仕組みを少しだけ書いてみようと思います。エンジンに対して対局の「初期局面」を送ってきます。加えて、現在局面に至るまでの指し手が添付されています。三点が分かるわけです。私のソフトの場合、この時点では深いことは考えずに、USIの言うとおりにガチャガチャガチャと現在局面を言われたとおりに組み立てて行きます。この時点で、エンジン側は、合法手であるかどうかの判断は付きません。将棋のルールさえ把握してませんし、駒の動き方も知りません。私のエンジンが知ってるのは、初期局面から現在局面に対しての組み立て方のみです。知っていても意味がないのです。エンジンはGUI側の命令に立て付くことは出来ないので。言われたとおりに駒の位置を動かすのみです。話はそれますが、もし、相手が非合法手を指していたとしても、勝ちを宣言することはおろか、エンジンはGUIに対し、抗議することさえ許されません。したがって、現在局面を作るまでの地図が、非合法であるか、合法であるかのチェックをするのは、エンジンにとって無駄な作業です。(もっとも私のソフトの場合、他の所で無駄なことをいっぱいやってます)。初手で52飛車(王手)の移動が記載されていた場合、28にある飛車を、52の位置に移動せねばなりません。それは将棋のルールでもなんでもなく、そう書いてあるからエンジンはそうしなければならないのです。言っても「普通は」バグがない限り、GUI側が将棋のルールを把握し、ジャッジするものなので、変な命令は送られて来ません。普通の将棋で言うところの、記録係や審判みたいな役目をすべてGUIが引き受けます。GUIがそうしろと言ってくるからには、GUIが正しいのです。抗議をする権利もないレベルで。(※現実上の問題では、GUIが変なことをやってくるなら、「エンジン作者の私自身」が「GUIの作者」に対して抗議します。「おたくのGUI、将棋のルール間違ってますよ」、と。話を戻して、それが終わると、現在の局面が完成します。Seleneは、このただの局面組み立ての時点で、駒の動き方をすでに知っていて、しかもそれを照合していたのでしょう。その時「角成らず」は、不必要との考えから、Salene側には合法手の一覧には加えられていなかったのでしょう。その結果、情報の辻褄が合わず、なんらかのバグが出てしまった・・・。言うことなのではないでしょうか。私のソフトは、この状態から将棋のルールの把握に入ります。駒の動きを教える際、若干厄介なのが、飛車と角、香車です。これ、駒単体では動ける位置を決めれないからです。飛角香に関してはそれはダメで、先に盤面全体の把握が必要で、それに沿って動ける位置が決まります。「合法手全部出しますよルーチン」に対して盤面を送りつけると、その盤面内の、全ての駒のその動ける位置がリストになって一気に返ってきます。無駄っぽい動きに関しては、盤面検索ルーチンで一括削除しています。私のプログラムでは、この時に合法手と、非合法手の切り分けがおこなわれます。飛車成りと、飛車成らずの両方の動きは認めますが、42桂成らずのような非合法手は削除されます。(削除と言うか、その手の存在を最初から発生させません)。検索の途中で打ち歩詰めが発見された際は、成らずの動きが解禁されます。以前、飛車を正しく動けないソフトが予選にエントリーされていて、しょうがないから、飛車は1マスずつしか動けない、と言う応急処置(?)を取っていたソフトがあるんですよね。世の中にはそうゆうバグ(?)もあるんだな、と言うお話でした。»プロフィールid:jelfe将棋のソフトを作るのです。月別アーカイブはてなブログをはじめよう!jelfeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。