倉庫番ラボ - パズルゲーム分析

荷物移動のまとめ

要点と活用

これまでに荷物の移動について下記のような性質を説明しました。
(1)(2)は荷物を押す回数のページ、(3)(4)は荷物を押す向きのページで解説しています。

(1)と(2)のように解答が偶数奇数に分かれる性質は、自動解答プログラムなどのコンピューターを使った解析に活用できないかと想像することがあります。
良い例ではないですが、コンピューターで解答を探索するなら、偶数奇数のグループに分けたときに、クリア局面を含まないほうはクリアを検出する処理を省略することができます。
おそらく、これをやっても効果は薄く、正解に到達するまでの時間が僅かに縮まる程度だと思いますが、もっと効果的な働きが見つかることに期待しています。

コンピューターで解答を求める現状の一般的な方法は、正解に行き着くまで局面を次々に生成する方法ですが、(3)と(4)の成分や荷物移動の経路から算出する方法はないかと考えることがあります。
荷物が互いに干渉しない状況を想定すれば、問題面から架空の最小成分が求まります。そこで、
(架空の成分)+(干渉による成分)=(解答の成分)
のような工程で解答が求まれば、これまでにない手法になります。言葉だけなら都合のいいことを好きなように書けるので、これは空想の世界です。

私は長い期間に渡って倉庫番に関する活動を行ってますが、上記の性質に気がついて他の人に話したのは倉庫番を始めてから20年ほど過ぎた頃でした。特に(2)を見つけたときには、なぜ20年も気が付かなかったのかと思うのと同時に、気が付かないままにならなくて良かったという思いが正直なところでした。

しかし、それを知らなくて困ったことはありませんでしたし、自作面の創作にも良くも悪くも影響はありませんでした。結局のところ(1)~(4)の性質は、倉庫番で遊ぶ上で役に立つ効果は見込めないのですが、様々な発想の入り口になったり、興味を持つ人が増えることに繋がれば、それが一番嬉しい効果です。

倉庫番と直接的に関係することではないですが、過去に数学の問題やパズルで薄っすら共通する考察をしたことがあるので、それをテトリスの問題のページと41ゲームの攻略のページで紹介します。

課題

分析のページでは、udlrや成分などのデータを使うことを当たり前のことのように説明を進めていますが、荷押しが最小の解答データは特に入手が困難です。手順が短い問題なら手作業で探し出すことも可能ですが、少し規模が大きくなるだけでも本当に最小かどうか判断できなくなってしまいます。

将来的には最小成分を算出するツールを作ることを考えています。プログラミングがある程度分かる方には、最小成分を求めるなら解答を求めるべきでは、と思われそうですが、現状は解答を公表することに抵抗があるので、ツールができるとしても先ずは最小成分を算出することを考えています。
プログラミングは初心者レベルなので、完成がいつになるか見通しは立ちません。