問題タブ [sliding-tile-puzzle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
33626 参照

algorithm - 8パズル問題を解決するための効率的なアプローチは何ですか?

8 パズルは、9 つ​​の位置を持つ正方形のボードで、8 つの数字のタイルと 1 つの隙間で埋められます。いつでも、ギャップに隣接するタイルをギャップに移動して、新しいギャップ位置を作成できます。つまり、ギャップは隣接する (水平方向および垂直方向に) タイルと交換できます。ゲームの目的は、タイルの任意の構成から始めて、ボードの周囲を走るか、左上に 1 を付けて左から右に並べるか、昇順で配置された番号のタイルを取得するようにそれらを移動することです。・手の位置。

8パズル

この問題を解決するにはどのようなアプローチが効率的でしょうか?

0 投票する
1 に答える
5415 参照

java - BFSを介して8パズルに取り組む

8パズルの問題はBFSで解決できると聞きましたが、その方法がわかりません。次のようなボードから取得する必要のある中間ステップを知りたいです。

中間ステップはBFS検索の「レベル」ですか?

ちなみに、これは基本的な宿題で、最適性は気にしません。

0 投票する
1 に答える
2998 参照

java - 15 パズルを解こうとすると、OutOfMemoryError

メモリ不足にならないようにこのコードを最適化する方法はありますか?

0 投票する
1 に答える
1734 参照

prolog - なぜ「エラー: グローバル スタックが不足しています」

0 投票する
3 に答える
11073 参照

c++ - C++を使用したA*アルゴリズムによるnパズルの解決

nパズルの問題A* algorithmを解決するためにC++で実装しています。このリンク に擬似コードを実装しようとしました。 総コスト(F = H + G)の計算は、「コストは、置き忘れたタイルの数(ヒューリスティック)+初期状態(G)からのステップに依存します」です。以下 に示す関数のアルゴリズム。

AStar

問題は、私が無限ループの状況にあることです。どうすればこれを解決できますか?

PS:必要に応じて、で使用される他の関数の実装を提供できますAStar

どんな助けでもいただければ幸いです。

}

0 投票する
2 に答える
215 参照

c++ - 2D 配列の値に誤ってアクセスする

次のような2D配列があります。

次に、配列に cin からの入力を入力していますが、問題なく動作しています。しかし、double for ループの反復によって配列内の値にアクセスしようとすると、正しくない値が取得されます。

次のような値を追加しているので、値を出力しました。

たとえば、 ints を保存しています{{1,2,3}, {4,5,6}, {7,8,0}}が、それらにアクセスすると、値が取得されます{{49,50,51}, {52,53,54}, {55,56,48}}

些細なことだと思いますが、どこを見ればいいのかわかりません。

0 投票する
2 に答える
334 参照

java - Java のキュー - 実装のどこが悪いのですか? また、使用できるものは何ですか?

正方形シフト パズル (解決されるまで正方形を空のスペースに移動するパズル) を解決するために、幅優先検索を実行しようとしています。私の幅優先アルゴリズムはキューを使用します。残念ながら、それは UP と DOWN のケースでのみ機能しているようで、LEFT や RIGHT のケースでは機能していないようです:

私のキューに問題があると思います。その実装は以下のとおりです。キューに何か問題がありますか、それとも別の問題ですか? Java API には、使用できるキュー クラスがありますか?

コピー方法は次のとおりです。

0 投票する
2 に答える
1461 参照

java - 検索アルゴリズム(DFS、BFS、スターなど)。「フリーズ」せずにGUIを(更新された状態で)更新するにはどうすればよいですか?

私の質問はかなり単純です。

アルゴリズム「Astar」(ヒューリスティック関数を使用して次にアクセスする状態を計算する検索アルゴリズム)を実行していると仮定します。

更新をグリッドで表示したい(8パズルの問題に適用します)。どうすればいいですか?変更をはっきりと表示したいのですが、私の経験ではGrid[6].showValue(newValue)、GUIのようなことをすると、「スタンバイ」になります。

これはマルチスレッドで実行できると確信していますが(多分?)、もっと簡単な方法はありますか?

そして、可能であればもう1つの非常に簡単な質問です。Java(私のIDEはNetbeans)に、BFS、DFS、Aスターなどの検索メソッドを含むクラスがあるのでしょうか。もしそうなら、アルゴリズムのコードへのリンクを提供していただけませんか(コードのベースとして使用する必要があります。直接含めることはできません。大学の課題です)。Javaはオープンソース言語なので、このコードは簡単に見つけられると思います。私が間違っている?

どうもありがとうございます

0 投票する
5 に答える
196 参照

c# - コードのこれらのビットについての説明が必要です

私は最近、いくつかのコードが私にとって奇妙なプロジェクト(A * algを使用する8パズルソルバー)に出くわしました。これは、そのようなものを見たことがないためです。

この行はどういう意味ですか?これは何ですか ?!

この表記は何ですか?私はそれを完全に理解することはできません!クラスのサンプルを投稿して、ほぼすべて一緒に見ることができるようにしました。そしてもう1つの質問ですが、StateNodeのようにクラスを実装するのは間違いではありませんか?フィールドを初期化するためにコンストラクターのみを使用しましたが、最悪の場合、それらはすべてパブリックであると宣言しました。彼/彼女はこのタスクのためにプロパティを実装するべきではありませんでしたか?

0 投票する
1 に答える
28484 参照

algorithm - 8 パズルにはいくつの可能な状態がありますか?

古典的な 8 パズルは、スライディング ブロックのファミリーに属します。私の本 (Stuart Russell と Peter Norwig による人工知能の最新のアプローチ) では、8 パズルには9!/2の可能な状態があると書かれています。しかし、なぜ/2なのですか? どうやってこれを手に入れますか?