パズル ゲームを解くプログラムを作成しています。ボード上で考えられるすべての動きを見つけ、結果として得られるすべてのボードをオブジェクトに配置します。次に、結果のボードで可能なすべての動きを見つけます。オブジェクトは次のようになります。
{
"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":[{}]
}]
}
トップレベルのボードから可能な動きを追加する方法を理解することはできますが、2 番目のレベルで結果として得られるすべてのボードをループしてそれらの可能性のある動きを把握し、次にすべての 3 番目のレベルのボードをループする方法を理解できません。等々。可能な移動を追加し、幅優先検索を使用してオブジェクトをトラバースするにはどうすればよいですか?