将棋パズル、ウニの解法について
将棋パズル、ウニの解法をプログラムで解いてみた
ウニという将棋パズルがある。
詳細はこちら。
『詰将棋サロン名作選』増刷記念懸賞
— 将棋情報局編集部 (@mynavi_shogi) 2021年11月12日
図の配置を初形から5手で作る手順は1通りですね。このように、ある手数でその形を作る手順が手順前後もなく1通りしかない形をウニと呼ぶことにします。歩を動かさずに自陣で手数が長いウニを作ってください。
一番長いウニを作れた方に増刷本をプレゼント。 pic.twitter.com/wYM8mEC4BT
将棋パズル、ウニについてのルール説明の概説
本将棋の初期盤面の配置、盤面の9筋と七段~九段を使います。
以下の図の配置を初期配置から5手で作る手順は1通りしかありません。
ある手数で、その形を作る手順が手順前後が無く1通りしかない形を、ウニと呼びます。
歩を動かさずに自陣内で手数が長いウニを作ってください、というものです。
プログラミングによる解法
私は、この問題をプログラミング言語、Python、Java、C++言語の3種類の言語を用いて、全手数の全ての解を求めました。
プログラムのコードは非公開にします。
また、プログラミングの解法についても、詳細の解説は控えます。
将棋パズル、ウニをプログラミングで、解く事に関心のある方は、コメント欄かTwitterの方に、ご一報ください。
プログラムの実行時間について
Python、Java、C++のそれぞれの言語で解を求めました。
また、それぞれの言語で、違うOSなど、違う環境でプログラムを実行しました。
その結果を以下に示します。
まとめ
将棋パズル、ウニをプログラミングを使って解いてみました。
アルゴリズムを用いて、解法を導く上で、この題材はとてもプログラミング学習に向いていて有意義だと思います。
この課題が出来ると、コーディング能力が向上するでしょう。
他にも、面白い数理パズルやコーディング問題があったら、教えてください。