我設法解決這個問題與RNG蠻力大約需要4-5秒找到最佳的解決方案,即使工作網格是一個3×3。如何開始編碼大腦的8益智遊戲,以計算最少的動作
我想知道我如何才能生成蠻力在沒有暴力的情況下發現的相同動作。
我會列出2個例子,並找到解決方案蠻力。我試圖分析解決方案,找出它爲什麼選擇他們,我什麼都不知道。
此遊戲的工作原理是利用在兩個方向(從右到左)
左到右循環旋轉做到這一點
If [a, b, c] then [b, c, a]
從右到左循環旋轉做到這一點
循環旋轉(左到右)和If [a, b, c] then [c, a, b]
遊戲數據可以說是這樣的(它可以是1至9中的任一置換)
例如
Data = 7, 2, 6, 1, 5, 4, 3, 8, 9
我可以通過8種不同的方式移動桌子上的棋子。
1)基於行的循環旋轉(從左到右)。
2)基於行循環旋轉(從右到左)。
3)基於列的頂部到底部。
4)根據列自下而上。
現在5到8不需要列或行,因爲它們是對角設置的。
5)從左上到右下(從左到右)。
6)從左上到右下(從右到左)。
7)右上角到左下角(從左到右)。
8)右上角到左下角(右到左)。
的數據被加載爲以下
- 007 | 002 | 006
- 001 | 005 | 004
- 003 | 008 | 009
解蠻力被迫:
1)。 [右上]到[左下](右到左)
2)。從下到上,列:0
3)。從左到右,行:1
下面是解simlutated
1)。[右上]到[左下](右到左)
- 007 | 002 |
- 001 | | 004
- | 008 | 009
2)。底部到頂部,列:0
- | 002 | 003
- | 006 | 004
- | 008 | 009
3)。從左到右排:1
- 001 | 002 | 003
- | |
- 007 | 008 | 009
下面是實施例2這需要6點移動到解決
- 009 | 008 | 007
- 006 | 005 | 004
- 003 | 002 | 001
解決方法:(6步)
1)。 [右上]到[左下](右到左)
2)。從上到下,列:1
3)。從下到上,列:0
4)。 [左上]到[右下](從左到右)
5)。從左到右,行:1
6)。從右到左,行:2
所以這是一個非常簡單的謎題,但找到高效的解決方案並不是一項簡單的任務。 有人可以指引我在正確的方向。
A *搜索算法。 – Novak