02 January 2019

    とにかく一度遊んでみたかった

     Twitterで禽将棋とりしょうぎの存在を知り、是非一度遊んでみたいと思って早速作ってみました。禽将棋
    詳しいルールはWikipediaを見ていただくとして、通常の将棋との違いについて色々面白い事に気づいたので紹介しようと思います。
     アプリの説明用の記事は別途用意しようと思ってます。

    駒の動きの特徴

     Wikipediaで駒の動きの一覧表に◯と☆と直線(|ー\/)を使って駒の動きを説明しているのを見て、最初☆は不要なんじゃないか?と思いました。例えばきじの動きは以下のように書かれています。

     駒を飛び越えると言ってもその場所に◯を書けば飛び越えられることは分かるので、わざわざ☆と◯を分ける必要性が最初分からなかったのです。Wikipediaでは本将棋の桂馬の説明でも☆を使って説明していますが、他の駒と同じように◯を使って以下のように書いてもすぐに桂馬の動きは把握出来るのではないでしょうか?

     つばめの成駒であるかりの動きも以下のように☆を使って書かれています。

    ☆︎  ︎ ☆︎
    ☆︎

     この☆の部分を◯で書いたとしても駒を飛び越えられることは理解出来るのではないでしょうか?間に駒があっても直線では結ばれていないので飛び越えられるんだなと理解出来ます。プログラムで駒の動きを定義する時も直線(何ヶ所でも移動出来る)と◯(場所指定で動く)の二種類の定義しか必要ありませんでした。
     でも、たかの成駒であるくまたかの動きの説明を見て☆と◯を区別する必要があることに気づきました。

     ︎
    |
    |

     くまたかは斜め後方に二つだけ動けるのです。斜め後方に二つ動く時は、間に駒があっては駄目なので☆を使っては書けませんし、三つ以上動くことは出来ませんので直線で表すことも出来ません。やはり☆と◯は区別して表現する必要がありそうです。このくまたかの斜め後方への動きは移動回数制限付きの直線と言い換えることも出来ます。本将棋の駒にはない動きですね。
     この動きがあるために汎用的に作っていた(と思っていた)プログラムを修正する必要がありました。連続移動かそうでないかの2値(Boolean型)で定義していたためです。ソフト開発って作り始めないと気づかないこと多いですね:sweat_smile:

    禽将棋の手筋

     禽将棋初心者の自分が気づいた面白い手筋をここに追加していこうと思います。

    1. 雉頭の燕(桂頭の歩)
      雉頭の燕
       横歩取りなどで飛車の筋が逸れた時に2八や8二に桂取りに歩を打つ時があると思いますが、雉の頭に燕を打つのも有効そうです。

    2. 吊るし雉(吊るし桂)
      雉頭の燕
       アプリとの対戦で出てきた局面ですが、雉を打って詰みです。

    3. 二燕(二歩)の有効活用
      二燕の有効活用
       燕を突き捨ててその裏に打ってさらに二燕で鶴を捕獲

    4. 鶉の二段ロケット
      鶉の二段ロケット
       燕が雁に成っても雁は後ろにしか進めません。本将棋の”と金”と違って鶉の前に燕があっても邪魔になるだけのようです。

    5. 鶉の串刺し
      鶉の串刺し
       雉の利きを利用して鶴を打って鷹を取ろうとしましたが、鶉が自鵬(自玉)を睨んでいて鷹を取り返すことが出来ません(王手放置、自殺手)。

    6. 鷹は尻から狙う
      鷹の弱点
       鷹の弱点は後ろ。禽将棋では鷹を持ち駒にして敵陣に打って鵰にすると優勢になると思います。チェスのクイーン並みに強力な駒?チェスに詳しいわけではありませんが:sweat_smile:

    実戦詰将棋

    1. 11手詰め(駒余り)
       持ち駒=左鶉1、燕5
      実戦詰将棋1
       アプリとの対戦で出てきた局面ですが、燕が雁に成った手が空き王手で、雁が鷹に紐付けられるのがミソです。常々雁は使えない駒だなぁと思っていたのですが、こういう筋があるんですね。
       (答え:4三左鶉、3一鵬、3二燕、2二鵬、2三燕、同鵬、3一燕成、2二鵬、3三鷹、3一鵬、3二鷹成まで、11手詰め)
      実戦詰将棋1答え



    blog comments powered by Disqus