こんにちは私はチェスボードに似たJavaで行列を構築する必要があるこの小さなプロジェクトに取り組んでいます。私は、ナイトをポイントから別のものに得るようになっています(ナイトの動きの方法で)。だから私は最後にそこに着くための最短方法を見つける必要があります。グラフ用の行列にノードを接続する
私の問題は、私はその点に到達するためにエッジを接続することはできません。私は、頂点が有効な移動であるかどうかを知ることができますが、その点に到達するためのノードを作成する方法を見つけることができないようです。例えば、
0 XXXXX
1 XXXOX
2 XXXXX
3 XXKXX
4 XXXXX
5 XXXXX
Iは、接続ノードを作成する必要があります後で最短距離を見つけるためにKからOへ。 PS。私はそこに着くか、ちょうどいくつかのヒントを得る方法のヒントで大丈夫になるでしょう。実際には正確なコードは必要ありません。どうもありがとうございました! 行列の悪い表現だとわかっていますが、私に批判を惜しまないでください。
一定の状態になる条件があるエッジはどうですか?例えば、出発点(チェスの騎士の動き)から「L」字形を作ることによって終点に到達したいのであれば、2つのセルを垂直に、そして1つを水平に意味するでしょうか? –
それに応じて 'adjacent()'メソッドを実装してください。 TODOのコメントが示すように、 'this'の位置から始まる可能な移動のリストを返すべきです。 – meriton