整理してみよう


将棋ベーシックのソースを公開したので仕様を簡単にまとめてみよう。


・キルムーブ(駒取り)が有る時は返しの手をαβ法で読む。現状より駒特になるなら指す。
・キルムーブが無い時は持駒をディフェンスポジション(自駒の効いている所)に置く。
・キルムーブもディフェンスポジションも見つからない場合はモンテカルロ法で指す。
・王手は逃げる


実はアルゴリズムはこの4つのみで出来ている。最新のコンピュータ将棋はもっと複雑だが、まあ俺の片手間で出来る分量を考えるとこの程度だ。テンポよく遊びたいので深読みはしていないが、将棋はやはり深く読み合って長い時間をかけて遊ぶゲームかもしれないなと。いろんな将棋があって良いとは思う。


前に作った将棋はCUIだったのでGUIのつまり画面付きの将棋を作るのが目的で、アルゴリズムはおまけみたいなもんだったのに、作ってみると面白かった。でもキルムーブに読みを付けると序盤の角切りは直るけど、終盤の桂馬を切ってくれないようになったりと、あちらを立てればこちらが立たずでコンピュータにモノを教えるのって大変ですね。近頃は良く出来たコンピュータが多いので出来そうに思えるけど自分でやってみることで、その融通の利かなさが身に染みて分かります。


アルゴリズムを知って遊んでみると、また違った将棋ベーシックに見えると思います。

広告を非表示にする