03 January 2019

    禽将棋

    「禽将棋」アプリについて

     禽将棋とりしょうぎは江戸時代に考案された将棋で、棋譜も現存しているそうです。一応Wikipediaの内容に沿ってアプリを作りましたが、アプリの都合で決めた部分もあります。アプリの仕様については3三将棋アプリの記事5五将棋アプリの記事も合わせて読んでいただきたいと思います。

    ルール

    • 鷹と燕は敵陣(先手は二段目、後手は六段目)に駒を移動すると成ります。
       ※成るか成らないかを選択することは出来ず、強制的に成ります。
    • 同一局面(手番も同じ)が4回現れると千日手でゲーム終了としています。
    • 現代将棋の打ち歩詰めと同様、打ち燕詰めは出来ません。
    • 現代将棋の二歩にあたる二燕は可能ですが、三燕は禁止。
    • 行き場の無い駒は打てません(燕を一段目に打つ)
    • 王手放置は禁止です。

    駒の動き

    • ◯はその位置に動ける
    • ☆はその場所まで駒を飛び越えて移動出来る
    • |、ー、/、\はその方向に何ヶ所でも移動出来るが、駒を飛び越えることは出来ない
    動き 裏(成駒) 動き

    鵬(おおとり)
    - -

    鷹(たか)
     ︎

    鵰(くまたか)
     ︎
    |
    |

    鶴(つる)
    - -

    雉(きじ)
    - -

    |鶉(ひだりうずら)
    |︎
    |
    - -

    鶉|(みぎうずら)
    |︎
    |
    - -

    燕(つばめ)
     ︎

    雁(かり)
    ☆︎  ︎ ☆︎
    ☆︎

     ※うずらの駒の実物は駒の裏に「左」「右」の文字が書かれていて左右を区別するそうです1が、アプリではうずらの駒の左下、右下に切欠を入れて区別してます。

    初期配置

    禽将棋初期配置

    盤面反転機能追加

     Version1.0.7.0から盤面の反転(先手・後手を上下逆さま)表示機能追加しました。画面右上の回転矢印アイコンをタップすると後手を手前にして将棋盤を表示出来ます。

    盤面反転機能

     この機能追加により今までAndroid4.4以上が動作対象機種でしたが、Android5.0以上が必要になります。

    AIレベル

    禽将棋AIメニュー

     AIのレベルは3段階で、思考ルーチンは5五将棋アプリとほとんど同じです。5五将棋アプリの記事も参照してください。

    駒の動きガイド

    禽将棋ガイドメニュー

     禽将棋独特の駒の動きに慣れるには時間が掛かると思いますので、駒を選択した時に駒の動かせる位置を表示出来るようにしています。

    禽将棋ガイド例

    棋譜入出力対応

     Version1.0.2.0から棋譜の入出力に対応しました。操作方法については3三将棋アプリと同じですので3三将棋アプリの記事を参照してください。
     一応CSA形式に倣ってますが、とり将棋独特の駒の略号等独自に決めた形式です。駒の略号については以下の表の通りです。

    駒の種類 表略号  駒の種類 裏略号
    おおとり OO - -
    たか TK くまたか KT
    つる TR - -
    きじ KZ - -
    左鶉ひだりうずら LU - -
    右鶉みぎうずら RU - -
    つばめ TB かり KR

    駒の重み

     Version1.0.2.2から評価関数で使用する駒の重みを変更しました。今までは本将棋に倣って禽将棋の駒の重みを適当に割り振っていただけ2だったので全面的に見直しました。と言っても機械学習等で導き出したわけではなく、移動可能な升目の数を根拠にして相変わらず適当に変更しただけなのですが、3三将棋アプリ5五将棋アプリ並みの精度(適当度)にはなった気がします。旧バージョンと対戦させて強くなっていることも確認しました。特に燕をやたらとただ捨てする点が気になっていたので、燕は持ち駒の方が盤上の駒より重みを大きな値にしたところや、鷹と鶉の重みを同じ3にしたところが大きな変更点となります。

    変更前:
    駒の種類\重み  表  裏(成駒) 持ち駒
    おおとり 9999 - -
    たか 75 110 65
    つる 50 - 45
    きじ 30 - 25
    左鶉ひだりうずら 45 - 40
    右鶉みぎうずら 45 - 40
    つばめ 10 30 7
    変更後:
    駒の種類\重み  表  裏(成駒) 持ち駒
    おおとり 9999 - -
    たか 70 160 56
    つる 60 - 48
    きじ 30 - 24
    左鶉ひだりうずら 70 - 56
    右鶉みぎうずら 70 - 56
    つばめ 10 20 12


    読みの深さ

     Version1.0.4.0から探索アルゴリズムを変更し、読みの深さも変更しました。

    AIモード\ Version  1.0.4.0以前    1.0.4.4以前  1.0.5.0以降
    弱い 全件探索、3手読み(depth = 2) 全件探索、3手読み(depth = 2) 反復深化部分探索(80手)、3手読み(depth = 2)
    普通 候補手15手選択後、4手読み(depth = 3) 反復深化部分探索(20手)、4手読み(depth = 3) 反復深化部分探索(40手)、4手読み(depth = 3)
    長考 候補手15手選択後、4手読み(depth = 3) 反復深化部分探索(20手)、5手読み(depth = 4) 反復深化部分探索(18手)、5手読み(depth = 4)

    ※アルゴリズムの詳しい内容はこの記事を参照してください。
    ※Version1.0.6.5で読みの深さを1ずつ減らして、ユーザーレスポンス優先することにしました4

    駒に毛筆フォント

     Version1.0.4.1から駒のフォントに毛筆フォントを選べるようになりました。無料フォントの中でも「衡山毛筆フォント」のように再配布可能というものはなかなか無いと思います。

    フォント選択メニュー


    衡山毛筆フォント

     自分も幼稚園の頃に書道教室に通っていたことがありますが、お近くの方は「青二書道教室」に行きましょう:sweat_smile:


    1. 裏に書かれているだけだと対局するときに分かりにくいので、人間同士の実際の対局時は「左」「右」と書かれている面を表に向けて対局するようです。鶉は成ることはないのでこの使い方で支障は無いようです。 

    2. 初期のバージョンは鶴は本将棋の金相当、雉は桂馬相当かなって感じで直感でなんとなく重みを決めていただけです。 

    3. 鷹も鶉も盤上に配置した時の最大の移動箇所数は7で同じです。 

    4. 他のアプリを使用していると知らぬ間にアプリが終了するケースが多い(メモリ逼迫によりシステムによって強制終了される)ので、読みの深さを減らしました。 



    blog comments powered by Disqus