2011-07-25 16 views
0

私はこのサイトで問題が発生しました:http://www.dark-project.cz/wesnoth/map-view/1(ユニットをクリック)。私のJavascriptソースhttp://www.dark-project.cz/wesnoth/js/map/base.js(最後の$('div.unitImg').click(function()の機能)では、ユニットが行けないすべての六角形をマークしたいと思います。六角マップ上の移動アルゴリズム

私は動きが1のときにはかなり複雑なアルゴリズムを持っていますが、それが高い場合には動きません(動き2を試してください)。

正しいヘックスを見つけるアルゴリズムについて考えていますか?ここで

座標ナンバリングの例である:http://www.dark-project.cz/wesnoth/coor.png

は、すべての返信をありがとうございました。

答えて

3

まず、座標を再設計することをお勧めします。良い例はthis questionです。

しかし、座標系に関係なく、将来はフィールドにいくつかの障害物(岩や竜など)があると思われますので、そのために用意された一般的なアルゴリズムを設計する必要があります。 BFSを調べることをお勧めしますが、グラフを明示的に作成する必要はありません。エッジが必要な場合は、フィールド上の隣接する六角形(奥行き1、動作しているもの)を確認して横断します。それは一般的なアプローチです。 DFSもありますが、隣接する辺の数がかなり限られていると、BFSは到達可能性の問題に対してより効率的であると考えられることがよくあります。

+0

ありがとうございました。私はそのような複雑な事や寓話では決して仕事しません。これまで私はちょうどPHPでいくつかのアプリケーションをプログラミングしています(e-shops、いくつかのクラブの複雑なcomunnication web - OOPを使用していました)、javascriptではもっと簡単なものもあります。だから私はBFSのようなalgorytmsとJavaScriptで実装している経験がありません。 jsのこのalgorytmsについてのチュートリアルや、この問題やそれに類するアプリケーションについて知っていますか? – Darkry

+0

残念ながら、私はリンクを知らないのです。ロシアの学校でそれを学んでいたので、英語リソースへの信頼できるリンクを提供できません。あなたはそれをGoogleにすることができます。一般的なグラフアルゴリズム(リンクされたwikiページとして)ではなく、BFSを使用して迷路から出口を見つけるいくつかの例を見つけることをお勧めします。それは私が信じるいくつかの洞察を与えるでしょう。あまりグラフについて考えるのではなく、騎士やドラゴンや迷路について考えるのは簡単です:) – unkulunkulu

+0

BFSは、ノードが距離の順に横断されているので、一定の距離離れたノードだけを見つけるように修正されました。 –

関連する問題