我正在製作一個解決益智遊戲的程序,它可以找到棋盤上所有可能的棋步,並將所有可能的棋盤放在一個物體中。然後找到所有可能的棋盤棋步,等等。對象將是這個樣子:廣度物體的第一次遍歷
{
"board": {
"starts": [[0,0],[0,3]],
"blocks": [[3,0],[3,3]],
"ends": [[2,4]]
},
"possibleMoves": [
{
"board": {
"starts": [[0,0],[2,3]],
"blocks": [[3,0],[3,3]],
"ends": [[2,4]]
},
"possibleMoves":[
{
"board": {},
"possibleMoves": [{}]
}
]
},
{
"board": {
"starts": [[0,3]],
"blocks": [[3,0],[3,3]],
"ends": [[2,4]]
},
"possibleMoves":[{}]
}]
}
我可以計算出如何從頂層板添加可能的行動,但在第二個層面我無法通過的所有結果板弄清楚如何循環和找出他們可能的動作,然後循環遍歷所有的三層板等等。如何使用廣度優先搜索添加可能的移動和遍歷對象?
你可能想在這裏做一個「遞歸」和「遞歸函數」的搜索,一般來說網絡應該是豐富的信息。 – prodigitalson 2011-03-23 20:40:59
你是否熟悉遞歸? – climbage 2011-03-23 20:41:22