タグ付けされた質問 「algorithm」

アルゴリズムは、計算、データ処理、および自動推論に使用されます。より正確には、アルゴリズムは、関数を計算するための明確に定義された命令の有限リストとして表現される効果的な方法です。

1
アクション指向のAI:回避アルゴリズムには時間がかかる
回避、つまり回避のプロセスは、追跡の反対です。ターゲットまでの距離を短くしようとするのではなく、最大化しようとします。 複数のオブジェクトを同時に回避している間は時間がかかります。ここではBFSを使用します。より速くするために、どのアルゴリズムを使用すればよいですか?

2
複数のアトラクタを処理できる物理エンジン?
主に立体重力でプレイするゲームをまとめています。 つまり、現実的に振る舞う複数の惑星/星/月、および重力場における経路のプロットと経路の予測を意味します。 私はBullet、トカマク、ニュートンなどのさまざまな物理エンジンを見てきましたが、それらのフレームワークで基本的に重力エンジンを書き直す必要があるため、どれも適切ではないようです。 互いに引き付け合う複数のボディを処理できる物理エンジンを知っていますか? シーングラフの管理やレンダリングは必要ありません。コアフィジックスだけです。(剛体ダイナミクスと同様に、衝突検出はおまけです)。 私のバックグラウンドは物理学なので、Verlet統合またはRK4(または必要に応じてオイラー統合)を使用するエンジンを作成できますが、既成のソリューションをかなり適応させたいと思います。 [編集]:n-bodyの問題の物理シミュレーションのための優れたリソースがオンラインおよびスタックオーバーフローにあります

5
類似したタイルが互いに隣り合って生成される可能性を高める
私はタイルマップシステムに取り組んでいます。これは、ここではこのように見えます(緑は草、空気は白、石は灰色、青は水です)。 単純な乱数ジェネレータを使用して、タイルが草である可能性が45%、水である可能性が30%、石である可能性が25%になるようにします。 とにかく、草/石のブロックが固まり、陸塊を形成する傾向を高め、ウォーターブロックを海に形成することができますか(Minecraftのようなゲームで見ることができるもののようなものですか)?
9 java  algorithm  tiles  maps  lwjgl 

4
n個のオブジェクトのシステムの衝突チェック効率を上げる方法はありますか?
多くの画面上のオブジェクトで構成されるゲームを作成しています。その1つがプレーヤーです。どの反復でもどのオブジェクトが衝突しているかを知る必要があります。 私はこのようなものを作りました: for (o in objects) { o.stuff(); for (other in objects) if (collision(o, other)) doStuff(); bla.draw(); } これにはO(n ^ 2)があり、これは悪いと言われています。これをより効率的に行うにはどうすればよいですか?私はこれをJavascriptで行っています、そしてnは通常30より低くなります、これが同じままなら問題になりますか?

3
ランダムなプールまたは湖を生成する
多角形を描画できる関数を実装しましたが、湖の丸みを帯びたエッジを模倣する滑らかな形状を生成できませんでした。2つの円を生成してエッジを結合してみましたが、十分なばらつきや滑らかさがありません。このような形を生み出す可能性のある指針やアイデアは誰にもありますか?

2
太陽の動きのための機能?
したがって、地平線に設定された太陽スプライト(x = 0、y = worldheight / 2)が与えられた場合、太陽を昇らせてから降らせる関数を考案しようとしています。 これを行う最良の方法はsin関数ですが、それを使用する方法はわかりません。 y = sin(x)を使用する場合、完全な曲線の場合、xの速度は一定であるのに対し、xは0からpiの範囲でなければなりません。 考えや提案はありますか? 編集:みんなありがとう!

1
2D空間分割に関するドキュメント
私は、さまざまな種類(とにかく主要なもの)の2D空間分割アルゴリズムとデータ構造を説明するドキュメントを探しています。 「Google itと何百もの論文をふるいにかける」以外の指針。本かしら?

3
多くの正方形のタイルベースの効率的な衝突検出?
現在私はタイルベースのゲームの独自のテイクに取り組んでいます(Terrariaを考えてくださいが、空想的ではありません(それは言葉だと思いますか?そうでない場合は申し訳ありません))。 とにかく、私は現在、衝突検出が機能しています(コーナーケースの場合でも!)。これは私にとって大きな一歩でした。スプライトがブロックを通過しないのを見るのは非常にうれしいことです。しかし、それから私はベンチマークするという考えを持っていました。悪いアイデア。 1,000平方、問題ありません。10,000の正方形、3つの文字は少し遅れました。3文字で100,000の正方形(本当に巨大な地図)はプレイできませんでした。 プレイヤー、キャラクター、アイテムなどから遠すぎるブロックも考慮したくないという問題がありますが、それらを常にメモリからロードしたくありません。 ここまでが私のアルゴリズムです。自由に非難してください。 foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between the two bounding boxes if (depth of intersection != Zero-vector) { check y size vs x size resolve on smallest …

1
マウスクリックが到達したタイルを見つける
私は等尺性グリッドベースのゲームに取り組んでおり、マウスクリックをユーザーからタイルにリンクしようとすると問題が発生します。私は問題を2つの部分に分けることができました: タイルを囲む長方形を見つける(私はそれを行うことができました) クリックが入った四角形からタイルを見つけ出します(私を困らせました) これは、内側にタイルがある長方形の例です。 長方形は長さ70px、高さ30pxなので、たとえば30x(top)/ 20y(left)の入力を使用する場合、これがどのタイルに該当するかをどのように判断しますか?

3
移動する円で掃引される2Dグリッドセルを見つける方法は?
私は2Dグリッドに基づいてゲームを作成しています。一部のセルは通過可能で、一部は通過できません。動的オブジェクトは、グリッドに関係なく連続的に移動できますが、通行できないセルと衝突する必要があります。 グリッドに対してレイをトレースするアルゴリズムを作成しました。これにより、レイが交差するすべてのセルが得られます。ただし、実際のオブジェクトはポイントサイズではありません。私は現在、それらを円で表しています。しかし、動いている円をトレースするための効果的なアルゴリズムを理解できません。ここに私が必要なものの写真があります: 数字は、円がグリッドセルと衝突する順序を示します。誰かがこれらの衝突を見つけるアルゴリズムを知っていますか?できればC#で。 更新円は単一のグリッドセルよりも大きい場合があります。

1
ボードゲームAIの作成
私はOkeyという名前で、主にトルコで人気のあるボードゲームをコーディングしたいと思っています。http://en.wikipedia.org/wiki/Okey しかし、私はAIについていくつかの問題を抱えています。 最初にゲームについて説明させてください。 ゲームは4人のプレーヤーでプレイされます。 このゲームには106のタイルがあり、そのうちの2つは偽のジョーカーです。他の104のタイルは、一般的に緑、黒、青、赤の4色に分かれています。すべての色には2セットのタイルがあります。セットiseには、1から13まで順番に番号が付けられた13のタイルが含まれています。 各プレーヤーは14タイルを開始し(1つは開始15で最初に開始)、最も不要なタイルの1つを次のプレーヤーに投げます。次のプレーヤーは、このタイルを取得するか、テーブルの中央にあるスタックから別のタイルを取得できます。ゲームは反時計回りに再生されました。 このゲームの目的は、14タイルの有効なシーケンスをできるだけ早く見つけることです。プレーヤーは、タイルを13まで同じ色で連番で並べることができます。たとえば、緑1、緑2、緑3の場合は例外です。ここでは例外があり、1は13に続くことができます。たとえば、赤12、赤13、赤1は有効なセット。ただし、赤13、赤1、赤2は無効です。 または、プレーヤーは同じ数の色でタイルを揃えることができます。たとえば、緑1、黒1、赤1、青1などです。 各セットを有効にするには、3つ以上のタイルである必要があり、このセットのそれぞれに「Per」という名前を付けます。仕上げには3タイル未満は無効です。有効な仕上げセットは次のようになります。G:緑、B:青、R:赤、BL:黒G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13 最後に、ゲームを開始するときに、ジョーカー(オーケー)を決定するために選択されたタイル。たとえば、Blue 3を選択した場合。青4はジョーカー(オーケー)となり、プレーヤーは、セットを獲得または完了するために必要なタイルの代わりに、このタイルを使用できます。 もちろん、これらの規則は一般的な規則であり、質問を説明するために要約されています。英語が読める場合は、このリンクで詳細を確認できますhttp://tr.wikipedia.org/wiki/OkeyまたはGoogle Translateによる翻訳ページhttp://translate.google.com/translate?js=n&prev=_t&hl= en&ie = UTF-8&layout = 2&eotf = 1&sl = tr&tl = en&u = http://tr.wikipedia.org/wiki/Okey では、どのAIアルゴリズムを使用できますか?ミニマックス理論とアルファベータ剪定を探しました。しかし、これらの理論は通常、チェスや三目並べのような2人のプレーヤーによるゲームです。 元の質問は、stackoverflowにあります。https://stackoverflow.com/questions/4419628/creating-a-board-game-ai

5
タワーディフェンスゲームのA *実装でのパフォーマンスが遅い
定義済みのパスを使用せずに、タワーディフェンスゲームをFlashで作成しています。 私のグリッドは40x40(小さい?)ですが、A *は毎回再計算するときに苦労しています。そのため、再計算を簡単にするために独自の変更を加えたため、タッチされたセルの数は約900に減少しました(ルートの近くで変更した場合)。新しいタワーが設置されると、非常に短時間ですが検出可能な時間はフリーズします。 これは実装の問題ですか、それとも40x40が多すぎますか? 編集: 私のコードの構造: すべてのデータは、セルの2D配列に保存されます。 各セルには、パス方向の親(時計回りに1〜8)と、パス内の子のビットごとにエンコードされた配列(すべてのビットが子を表す)が含まれます。 検索は、ユークリッド距離の推定値を使用してA *によって実行されます。

3
レースゲームの参加者の位置をどのように決定しますか?
記録のために、私は現在、レーシングゲームをまったく実装していませんが、この問題が頭に浮かんだだけで、気になります。 では、どのレースの参加者が現在最初の参加者であるかを知るにはどうすればよいでしょうか?フィニッシュラインまでの距離で並べ替えるのは簡単なことではありません。これは、ほとんどのコースでは非常に不正確だからです。ルートを直線セグメントに分割するような方法を考えました。それぞれのセグメントには方向ベクトルがあります。次に、ゲームは、そのベクトルに自分の位置を投影し、どちらが先かをチェックすることによって、誰かが他の誰かを追い越したかどうかをチェックします。位置が変更された場合、ゲームはそれらを適切に増減します。しかし、それは少し複雑すぎるようです。 誰かが確立された方法を知っているか、いくつかを実装した経験がありますか?

3
2Dスターマップで境界線/州のエリアを生成するための適切なアルゴリズムは何ですか?
私は、それぞれが1つ以上の星系を所有している、異なる派閥/状態を示すかなり大きな2次元の星図を生成しようとしています。派閥の境界・エリアを自動で作成したいのですが。 アイデアは基本的にこのようなものから行くことです(ドットは2d平面上の星系を表し、色は派閥の所属です) これに このようなマップを生成することはかなり一般的な要件のように思われるので、私の実際の質問はこれです:示されているように状態領域を生成するための標準的なアルゴリズムはありますか?もしそうなら、私にそれらを指摘してもらえますか?そうでない場合、良いアルゴリズムを考えることができますか? アルゴリズムのパフォーマンスは私にとって主な関心事ではないので、生成するのが高速なマップよりも「きれいな」マップを使用したいと思います。この同様の質問は、いくつかの「整形」が必要であるにもかかわらず、おそらく私の問題に適用できるアプローチを提供します: グラフからマップを作成する方法 きれいに言うときの意味を説明しましょう。リンクされた質問の下部に、質問者は受け入れられた回答を実装した後の最終結果を提示します。ここでの最初の問題:ノード#6、#9、および#12の領域は非常に小さく、奇妙な形をしています。また、シャープなエッジの代わりに、滑らかで湾曲した外観を好むでしょう。 これまでに見たそれぞれの欠点/質問を含む、これまでの自分のアイデア: 各派閥の「凸包」ポリゴンを生成し、少し外側に拡張します。問題:凹面の特徴はありません。また、オーバーラップにはどのように対処しますか? ドットのボロノイグラフを生成し、隣接する異なる派閥のシステム間のボロノイポリゴンエッジを境界として使用します。問題:マップの端にある大きなポリゴン-それらを特定して修正するにはどうすればよいですか? ドットごとに固定サイズのポリゴンを生成し、単一のファクションのすべてのポリゴンを結合します(結果として、1つの大きく潜在的に複雑な「ファクションポリゴン」が生成されます)。次に、2つの派閥間の重複領域を調整するために何かを行います。問題:これを正確に行うにはどうすればよいですか?単純なプロセスではありません。3つ以上の派閥間で重複がある場合はどうなりますか? よろしくお願いします。 補遺:最初の2つの回答と問題を解決するためのそれぞれのアプローチを検討した後、上記の要件が不完全であることに気付きました。 私は、地図にまばらに人口の多いエリアがある可能性があることを追加する必要があります。これは、孤立した星または星のクラスターがある可能性があることを意味します。それらの各クラスターを、独自の隣接する色付きの領域で表示したいと思います。このようなもの: これには、クラスターを識別する最初のステップが必要であり、次に各クラスターに対して実際のアルゴリズムを実行する必要があることを理解しています。
9 2d  algorithm  maps 

2
オクツリーの境界ボックス
八分木は、錐台カリングや3Dの衝突検出などによく使用されます。しかし、アルゴリズムがどのように機能するのかまったくわかりません。バウンディングボックスを使用しようとすると、octreeの原則全体が壊れます。これは、特定のボックスが1つのノードに格納されていても、実際には別のノードが表すスペースと重なっている可能性があるためです。さらに、これがポイントではなくバウンディングボックスをルックアップする場合にどのように機能するかはわかりません。これも、実質的にすべてのノードのルックアップが行き詰まり、目的が果たせなくなる可能性があるためです。 では、いったいどのようにoctreesは境界ボックスに対処するのでしょうか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.