我正在制作一个解决益智游戏的程序,它可以找到棋盘上所有可能的棋步,并将所有可能的棋盘放在一个物体中。然后找到所有可能的棋盘棋步,等等。对象将是这个样子:广度物体的第一次遍历
{
"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