問題タブ [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 投票する
3 に答える
26013 参照

java - DFS を使用して 8 パズルを解く

指定された初期状態で 8 パズル ゲームの DFS と BFS を実装する Java のコードを探しています。

と目標状態

初期状態から目標状態までのソリューション パスを出力する必要があります (まだ完了していません)

これは私が持っているコードです。これまでのところ、DFS のみを実装できました。私のプログラムがこれまでに行ったことは、目標状態を見つけると SUCCESS を出力することです。ただし、ここまで到達することはありません。

誰かが私が間違っている場所を教えてもらえますか?

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

sliding-tile-puzzle - 15 スライダー パズルが解けたかどうかをチェックするロジック

私は 15 個のスライダー パズルの Javascript バージョンを作成しており、innerHTML 値を交換することでタイルの「移動」をシミュレートできます。他の人が示唆しているように、配列の代わりにも使用しています。私のコードを考えると、パズルが解けたかどうかを確認する方法を入力するにはどうすればよいでしょうか? 解決したら「解決しました!」でアラートしてほしいです。私にできるメッセージ。パズルが実際に解かれているかどうかを確認する方法がわかりません。

条件付きの if ステートメント (つまり、空白セルが行 3、セル 3 にある場合) を使用してアラート ポップアップを表示することを考えていましたが、すぐに失敗しました。また、各行に 1 ~ 15 が正しい順序で含まれているかどうかもチェックしません。最初は、2 つのタイルを入れ替えてパズルを開始します。これが私がこれまでのところです:

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

java - A* Algorithm 8-puzzle

I have read many pseudo code for the A* algorithm, but neither of them actually explain how to output the solution. I believe I understand the concept of using a priority queue for the not yet visited and a has table for the explored, but when I go through the algorithm I don't know at what point to print out the result. Does any one have a pseudo code that actually show how to output the path?

Id really appreciate it. I have been trying to use the algorithm to implement the 8-puzzle problem

Here's my code:

for some reason, this just prints one node, and it's bot even the goal. Can anyone tell me what I am missing?

0 投票する
0 に答える
1339 参照

javascript - 15 パズルは、空の 1 つの近くの数字/ボックスのみを移動可能にします

jquery と javascript を使用して、15 のパズル ゲーム (このようなもの: http://migo.sixbit.org/puzzles/fifteen/ ) を作成しようとしています。私はコードでかなり遠くまで来ましたが、今は小さな問題で立ち往生しています。私の問題は、空のボックスの左/右/下/上のみを移動可能にしたい場合に、すべてのボックス/番号が移動可能であることです。

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

java - A* を使用した 8 パズルの解決: 祖先の状態を繰り返す子ノード

8 パズルの問題があり、空のタイルが 0 とマークされているとします。目標状態は次のとおりです。

  • 1 2 3
  • 4 5 6
  • 7 8 0

初期状態は次のとおりです。

  • 0 1 3
  • 8 2 4
  • 7 6 5

... 私の質問は、A* ツリーの子がその先祖と同じ状態を「コピー」または同じ状態にすることは可能ですか? または、「f(n) = g(h) + h(n)」[ここで、g(h) = 行われた移動の数... h(n) = 各タイルのマンハッタン距離の合計] は、すでにこれを不可能にし、したがって、これについて心配する必要はありませんか?..たとえば、初期状態から:

  • 0 1 3
  • 8 2 4
  • 7 6 5

次に、次の状態が発生するため、A* ツリーにさらに子ノードが作成されます

(アクション: アップ)

  • 8 1 3
  • 0 2 4
  • 7 6 5

アクション: 左

  • 8 1 3
  • 2 0 4
  • 7 6 5

アクション: ダウン

  • 8 0 3
  • 2 1 4
  • 7 6 5

アクション: 右

  • 0 8 3
  • 2 1 4
  • 7 6 5

アクション: アップ

  • 2 8 3
  • 0 1 4
  • 7 6 5

...その後、アクション: 左、下、右、上、左、下、右が発生します...したがって、状態は初期状態に戻ります。

  • 0 1 3
  • 8 2 4
  • 7 6 5

これは 8 パズルの A* 検索で可能ですか? それとも f(n) がこの問題を解決してくれるでしょうか? 答えてくれる人に感謝します。助けていただければ幸いです。

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

list - プロローグ - パズル 8

パズルを解くプロローグ プログラムを作成する必要があります。私は Prolog を初めて使用します。苦労しています。これが私のコードです:

ここで、mov_legal(C1, M, P, C2) を作成する必要があります --> c2 は構成 c1 から取得され、移動 M を実行し、ピース P を移動します。予想される結果の 1 つを次に示します。

助けていただければ幸いです!