2009-07-05 12 views
1

私はPopcapのAtomicaとほぼ同じゲームを作った。 (http://www.popcap.com/gamepopup.php?theGame=atomicaどこからでも移動することをブロックする

1つの重要な機能を除いて、ほぼ完成です。どこでも動く球体からユーザをブロックする。同様に、ユーザーが移動しようとしている球と、移動しようとしているフィールドとの間に他の球の壁がある場合、ユーザーはそれを移動できません。

多次元配列[x-loc、y-loc]にすべてのフィールドと球を格納しました。ここで、 "e"は空、 "s"球などと等しくなります。 2つのフィールドの間に明確な道路がある場合は外出しますが、何も機能していません。

誰でも私にこの問題を解決する方法のヒントを教えてください。

+0

パスファインディングにこれらの質問を参照してください。 http://stackoverflow.com/search?q=path+finding 、衝突検出に関するこれらの質問: http://stackoverflow.com/search?q=collision+検出 次に、より具体的な問題をもう一度試してください。コードを投稿すると、それが動作していない場所を教えてくれます。 –

+0

データを文字列/文字として保存しないでください。それを列挙として格納します。 –

+0

チャーリー:なぜ? 球が異なる色になる可能性があるので、この方法は簡単です。赤い球の場合は「sr」、青の場合は「sb」など – Phoexo

答えて

0

Floyd-Warshallのようなパスアルゴリズムを実行する必要があります。行列の無効なノートとエッジを省略します(つまり、あなたが見るグラフは球なしのすべてのノードのサブグラフになります)唯一の法的な動き。 Floyd-Warshallのようなパスアルゴリズムは、すべての "法的な"動きを与えます。

関連する問題