次のルールでパズルを解く手順を見つけるプログラムを作成しようとしています。
- 4x4 グリッド内の任意の色のセットが与えられた場合、同じ数の色で終了パターンに一致するように試みます。
- 色は交換されませんが、水平または垂直に回転します。
{わ、わ、わ、わ}
に回転することができます
{W、W、W、B}
{B、W、W、W}
{わ、わ、わ、わ}
- パズル全体は 16 ステップ未満で解決できます。
パズル自体のデータを保存する方法はすでにわかっていますが、ステップを表示できるソリューションを見つけることについてどのように進めるかについて苦労しています。深さは 16 ステップに制限されているので、力ずくでやってみることは問題ありませんが、パターンを確立する方法がわかりません。
これは、ルービック キューブを解くのに似ています。私はすでに次のリソースを見てきました。
stackoverflow.com/questions/34656587/solving-rubiks-cubes-for-dummies/34656726#34656726
stackoverflow.com/questions/5563671/solving-rubiks-cube-programmatically
amzi.com/articles/rubik.htm
chessandpoker.com/rubiks-cube-solution.html
そして15の数の問題
- stackoverflow.com/questions/3621623/how-to-programatically-solve-the-15-moving-numbers-puzzle
この質問をできるだけ明確にするために、a) 手順を保存/印刷し、b) 手順を最小限に抑えるソリューションを見つけるには、どのような方法がよいでしょうか?