56将棋開発ブログ

5×6マスのミニ将棋、「56将棋」で遊べるものをいろいろ開発してます。

近況

5ヶ月も放ったらかしてしまいましたが、心機一転、ブログタイトルを変えてみました。

現在は、ブラウザ版ごーろく将棋 56shogi のリニューアルに向けて開発を進めています。

追加する主な機能としては、

1.COMのレベル3、4、5
2.棋譜ツイート機能
3.トライルールの実装
4.千日手への対応

です。

COMのレベル3、4、5については、5ヶ月前に公開した「プチボナ 56shogi」 をJavaScriptに移植したものをつかって、
探索深さやノード数を制限して強さを調節する予定です。

棋譜ツイート機能は、colamoneのアイデアをそのまま56shogiに対応させました。
colamoneを開発したkurehajimeさまには感謝申し上げます。
colamoneもとても素晴らしいボードゲームですので、是非遊んでみてください。

トライルールとは、玉が敵陣の特定のマスまで進むと勝ちになるルールです。
(相手に玉をとられないことが条件ですが)
ごーろく将棋 56shogi は盤面の広さのわりに駒が多いので、
詰むや詰まざるや、トライできるかできないかのような、
複雑な局面になっておもしろいです。

千日手は今まで実装していなかったのが怠慢でした。
これでルール上の不備はなくなったと思います。バグが怖いですが。


JavaScriptに移植する上で工夫した点としては、

1.Cのマクロをつかっている部分をSweet.jsのマクロ機能で代用
2.RequireJSで分割したファイルを管理、統合

ぐらいです。

コンピュータ将棋の技術的な話としては、
飛び利きの算出をrotated bitboardからkindergarten bitboardに変更しました。
こちらのブログを参考にさせていただきました。

Kindergarten Bitboardsの将棋への応用 - コンピュータ将棋開発中


少し前にEmscriptenBonanzaのコードをJavaScriptに変換したembonaというものが公開されましたが、
プチボナのブラウザ版への移植は人力でやりました。

かなり時間がかかりましたが、Bonanzaの指し手生成と探索部分の理解が深まった感じがしているので、まあいいかなと思っています。


とりあえず現在は、移植したプチボナの思考エンジンがブラウザ上で動くようにはなっています。
今のブラウザ版のレベル2との棋力差が大きすぎるので、移植したプチボナをレベル5として、探索深さやノード数を制限して強さを調整したものをレベル3、4とする予定です。

あとはルール説明のページをきちんと用意して、それができれば公開しようかなと思っています。

最後に開発中の画面を貼っておきます。
(トライされてプチボナに負けた局面です。くやしい)

f:id:tetsuzuki1115:20151007205923p:plain


それでは。