はここに私のコードです:BFSの検索を実装する方法〜のjava
private void doBfs(HiRiQ node, ArrayList<HiRiQ> queue, ArrayList<HiRiQ> path, ArrayList<HiRiQ> visited) {
while(!queue.isEmpty()){
HiRiQ current = queue.remove(0);
if(current.IsSolved()){
current.print();
System.out.println("Path found !");
return;
} else {
if(current.getAllNextStates().isEmpty()){
return;
} else {
queue.addAll(current.getAllNextStates());
}
}
visited.add(current);
}
}
私はこの方法を継続する方法を考え出す苦労しています。私は他のメソッドにアクセスすることなく、それが複雑になる必要があることを知っているが、私はちょうどこのBFS-検索アルゴリズムに欠けているかを知りたいです。
このBFS検索の目標は、「ノード」から始まる解決の設定を見つけることが可能であれば見つけることにする必要があります。
注:HiRiQはパズルボード(この場合ゲームはペグソリティアパズル)の設定を表し、getAllNextStates()メソッドは現在のものから1つ離れたすべての異なるボード構成を生成します。
私はそれだけで任意の解決策を見つけることができません、それを実行すると、それは果てしなく実行されます。
現在のコードで間違っ*特に*どのようなものです:
BFSロジックを実装し、その後に簡単です:このリンクは、次のように
Node
クラスで処理することができますか?何らかのエラーが発生していますか?もしそうなら、それは何を言いますか?アルゴリズムは期待どおりに実行されていませんか?もしそうなら、それは何をしていますか、それはどうやって違うのですか? –