我試圖創建一個程序,將發現的步驟來解決以下規則一個難題:解決一個4x4拼圖網格
- 鑑於任何一組色彩在4x4的方格,試圖匹配具有相同數量的顏色的結束模式。
- 顏色不交換,但水平或垂直旋轉,使得
{W,W,B,W}
可旋轉以
{W,W,W ,B}
{B,W,W,W}
{W,B,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 - 移動 - 數字拼圖
爲了使這個問題儘可能明確:什麼是a)儲存的好方法/打印的步驟,和b)發現,採取至少步驟解決?
*什麼是a)存儲/打印步驟的好方法,b)找到採取最少步驟的解決方案?a)樹。 b)樹分支上的最少節點數。 –
@GilbertLeBlanc,我將如何構造該樹/節點集?只要選擇N個可能的隨機動作(16個方格中的每個方格可能有6個方格就是96個方格)並繼續? – Rhys
它不是隨機的。根據您自己的示例,您將以4 x 4網格作爲頂級節點。你做所有可能的水平或垂直移動。每一步都是起始位置的一個節點。你走下一個關卡,在每個節點上做同樣的事情,直到你有了解決方案。通過廣度優先搜索,您可以找到最短的解決方案,而無需解決所有問題,但您應該在關係緊密的情況下完成關卡。 –