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

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

1
ゲームに基づくstatistics statsのツールのためのアルゴリズム(League of Legends)
ゲーム(League of Legends)のシミュレーター(基本的にテスト目的)を作成したいと思います。 ゲームの基本: あなたはいくつかの統計を持つヒーローを持っています: 健康ポイント 攻撃ダメージ 攻撃速度 鎧 装甲貫通 移動速度 ヒーローは4つのスキルを持つことができます(各レベルで1つのスキルポイントを取得します)(ほとんどの場合、手動でアクティブ化され、クールダウン、ダメージ、攻撃力/攻撃力のスケール比、およびスキルレベルがあります)+パッシブスキル 敵のヒーローやニュートラルモンスターを殺すことができます。それらは同じステータスを持っています: 健康ポイント 攻撃ダメージ 攻撃速度 鎧 私がしたいこと: 特定のアイテム、または特定のステータスの増加があなたの殺害力/スピードをスピードアップするかどうかをテストするツールを作成します。 地図: http //evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg 統計の例: HP:420 広告:55 攻撃速度:0.613(攻撃/秒-> 1 / 0.613秒のすべての攻撃) 装甲貫通力:25 キャラクターは1 / attackspeedで敵をオートアタックし、attackdamageでダメージを与えます(ダメージを計算する公式はありますが、このフェーズでは重要ではないと思います)。一度死んだら、movingspeed(あなたはマップ、黄色の頭蓋骨でキャンプを見ることができます) 私はアルゴリズムについて考えていました: i = 0からi = 30000(ミリ秒を数える)でforを作るだけだと思ったので、ミリ秒ごとに敵のhpとhpをチェックするだけでいいことがわかりました(かなりCPUが重いため、その中にランダムを入れるため、1k回の反復を合計できるはずですが、これは不可能です) 第二に、私はi = 1から30までforを実行し、毎秒チェックし、最後の1秒間に何が起こったかをチェックする必要があると思いましたが、ニュートラルモンスターの一部は大きなキャンプ(最大4モンスター)にいます、そしてこのようにして、コードはますます複雑になりました。 プレイヤー/モンスターごとにスレッドを作成し、死んだら調べ終わったら、プレイヤーのHPを下げます。 私の質問、これは正しい方法ですか? TLDR:統計値の増加によりキャラクターがより速いニュートラルモンスターを殺すゲームについての分析(1kを繰り返し、平均を計算)を作成するツールを作成したいと思います。 私はjavaを好みますが、atmはアルゴリズムに行き詰まっています。 @Karoly S:ええ、それは私の悪いです、.com-> .eu 私はこれに取り組んできました: …
10 algorithm 

1
ポリゴンを任意の形状に合わせるためのよく知られたアルゴリズムはありますか?
Chipmunk物理エンジンを使用して、2D Cゲームのレベルを作成しています。ポリゴンを任意の形状にフィットさせて、衝突マスクとして機能させたいです。次のような任意のレベルのオブジェクトの白黒の衝突マスクがあるとします。 これを取得するためのよく知られたアルゴリズムはありますか? 次に、赤いポリゴンを使用して、画像に合わせて物理オブジェクトを作成します。

3
グラフのエッジの数を減らし、接続を維持する
私はランダムに生成されたダンジョンでゲームをデザインしています。これを、ノードが部屋であり、エッジがドアまたは廊下である、接続された無向グラフとして表示したいと思います。次に、ダンジョンの入口として「サイド」ノードを選択し、この入口と他のすべてのノードとの間の距離を計算し、最も遠いノードの1つをダンジョンの「ゴール」(宝物、ボス、プリンセスなど)。 最終的なダンジョンの地形を生成する2つの方法を見ました。 最初にランダムグラフを生成し、エッジの接続を尊重して、ランダムな場所にある部屋で2Dワールドを塗りつぶします。部屋の生成が不可能な場所に部屋を適合させようと「ロック」される可能性があるため、これは時々困難になると考えました。 最初の部屋を生成し、それらが収まる場所にランダムに配置してから、結果をノードとエッジにマッピングします。私はこれを試すことにしました。 私の考えは次のとおりです。 最初に、ダンジョン全体を含む大きな部屋を生成します。 大きな部屋の内側のランダムな場所に壁を置き、大きな部屋を異なる面積の2つの小さな部屋に分割します。 次に、部屋が小さすぎるか、部屋の総数が最大(またはその他の条件)に達するまで、各部屋を2つに分割し続けます。新しい部屋はそれぞれノードです。 終了したら、各部屋をチェックして、隣接する他のすべての部屋を見つけ、2つのノードをエッジで接続されているものとしてマークします。 そうすることで、すべての部屋が2Dの世界で可能な場所に配置され、接続されたグラフによって正しくマッピングされるようにします。 私の問題は、部屋をつなぐドアと廊下が多すぎることです。 したがって、接続された無向グラフのエッジの数を減らし、最終的には接続されたまま(すべてのノードが到達可能なまま)のアルゴリズムが必要です。

1
現実的なゆっくりと降る雪のアルゴリズム?
降雪をシミュレートする優れたアルゴリズムはありますか?特にゆっくりと降る雪に興味があるので、一直線にはならないが少しズレる。多分、小惑星(風のドラフト)、可変サイズなどのシミュレーションも含まれます。実際の雪の動きを模倣したり、ゲームのコンテキストでシミュレーションしたりするアルゴリズムに関する論文や記事はありますか? 特に2Dアルゴリズムに興味がありますが、どのアルゴリズムでも簡単に3Dに変換できると思います。

4
低電力ハードウェアでの円運動
古い2Dゲームでプラットフォームと敵が円を描くように動くことを考えていました。パラメトリック方程式を理解しています。sinとcosを使用してそれを行うのは簡単ですが、NESまたはSNESがリアルタイムのトリガー呼び出しを行うことはできますか?私はかなりの無知を認めていますが、それらは高価な操作だと思いました。そのモーションをより安価に計算するための巧妙な方法はありますか? 私は、事前計算されたトリガーのみを使用するアルゴリズムをトリガー合計IDから導出するよう取り組んでいますが、複雑なようです。
10 algorithm 

1
通常のn辺のポリゴンのコーナーを作成するアルゴリズム
私は多くのキーワードの組み合わせを使用してこれをグーグルで調べましたが、驚いたことに、通常のn辺のポリゴンを特定の円に構築するためのアルゴリズム、つまりn個のコーナーポイントの座標を見つけることができませんでした。私が見つけることができたのは、物理的なコンパスと定規、またはソースのないインタラクティブなブラウザプラグインでそれを行う方法の説明だけでした。 では、そのようなアルゴリズムはどこにありますか?

1
すべての通常の経路がブロックされているときに障害物を通る最短経路を見つけます
タワーディフェンスを作成していて、基本的なパスファインディングが機能していますが、問題が発生しました。 パスをブロック可能にしたいと思います。ブロックが発生すると、ランナーはブロックタワーを攻撃します。 だから私が必要なのは、最も重要なのは、塔の数が最も少ない最短経路を見つける方法です。 それ、どうやったら出来るの?

3
グリッド上のタイルのセットが囲まれた形状を形成するかどうかを決定します
グリッド上のタイルのセットを前提として、以下を決定します。 タイルが囲まれた図を作る場合 ボードの側面を図の端として数えたときにタイルが囲まれた図を作る場合 前の2つのステートメントのいずれかがtrueの場合、追加のタイルが囲まれた図の内側に入ると、最初のタイルが形成されます。 プレーヤーは、1つのタイルを押し下げてから、指を他のタイルにドラッグして、同じ色のタイルのチェーンを作成します。次のタイルが有効であるかどうかを確認するために行くときに確認します。例 プレーヤーが赤いタイルから始めた場合、次に有効なのは隣接する赤いタイルへの移動のみです(対角線はカウントされます)。ユーザーが指を離したときに、上記の3つの項目を確認できるようにする必要があります。 ですから、私の最初の考えは、行くたびにチェーンの有効性をチェックしているので、プレーヤーが指を離したときに、最初と最後のタイルが隣接しているかどうかを確認できるということでした。(同じ色だとわかっています。)隣接している場合は、囲まれた図を作成するという予感がありました。ここに来て、大きなものが足りないかどうかを確認しました。私の直感が正しかったことのある種の論理的/数学的な証明(またはそれが正しくないことを証明する例) しかし、そのときは、アイテム番号2について考えました。ボードの端を囲まれた図の側面として使用するチェーンも考慮する必要があります。その場合、チェーンの最初と最後のアイテムは隣接しませんが、囲まれた図がまだあります。さて、私は少し正方形に戻りました。 このグリッド座標のチェーンを使用して、囲まれた図を作成するかどうかを判断するにはどうすればよいですか?私は一度、ん、私は囲まれた数字を持って知って、その境界内に入る全てのタイルの追加のリストを取得するための最良の方法は何ですか? 上記では、このテストの4つの可能な結果が期待できるものの絵を描きました。 チェーンは同封の図を作りません。 チェーンは囲まれた図を作ります。 ボードの側面を図のエッジ(または複数のエッジ)として数えると、チェーンは囲まれた図になります。 チェーンは囲まれた図を作成しますが、作成された図の一部ではない余分なデータポイント(チェーンの一部としてユーザーが有効に選択したもの)があります。 ケース4は、「余分な」チェーンリンクを抽出して、囲まれた図形とその中にある部分を見つける必要があるためです(ただし、「閉じられていない」領域の周りではありません)。 だから...誰もがこれを解決する良い方法のアイデアを持っていますか、それとも私のための出発点ですか?この時点で私は一種の円を描いており、別の目を使用できます。
10 algorithm  grid  graph 

3
エレガントな自動タイル
タイルベースのゲームでオートタイルを実装する方法についての情報を探しています。これまでのところ、ハードコーディングされた「if ... else ...」ステートメントの束を使ってそれを常に即興で表現してきましたが、今はよりエレガントな解決策を見つける時がきたと判断しました。自動タイル張りの実装の例とトピックに関するディスカッションをインターネットで検索しましたが、3つの記事しか思いつきませんでした。 http://www.codeproject.com/Articles/106884/Implementing-Auto-tiling-Functionality-in-a-Tile-M http://blog.rpgmakerweb.com/tutorials/anatomy-of-an-autotile http://web.archive.org/web/20130927193449/http://www.squidi.net/mapmaker/musings/m091016.php (特に最後のものは包括的で非常に役立ちます。) 私もそれを実装することを、様々な実装とライブラリのドキュメントを見てきた、例えば、flixel:http://www.flixel.org/features.html#tilemaps 悲しいことに、私が見つけたすべての解決策は、私が始めたときとまったく同じように即興で無計画であり、考えられるすべてのケースをカバーすることはほとんどありません。 私は学ぶことができるオートタイリング実装のエレガントな例を探しています。

3
加速度が制限されているオブジェクトのパスを計算するにはどうすればよいですか?
たとえば、車があり、車に特定の最小回転半径があり、その車を点aから点bまで運転したいが、車が点bに向いていないとします。ポイントbへのパスを計算するにはどうすればよいですか?ポイントbで方向を指定できることも良いでしょう(たとえば、私道に車を運転してからガレージに車を引き込みたいとします-芝生の上をドライブして車道に着いたとしても、あまり役に立ちません。横向きです:) ドキュメントへのポインタ(または名前だけでも)は完全に問題ありません-私は何も見つけることができません。 私の試みでは、それらは単純なケースで機能しますが、ポイントbが最小回転半径よりもaに近い場合などの状況では無残に失敗します。 たとえば、次のようなパス(太字のパス)をどのように決定しますか。 編集:私の実際の問題では、いくつかの単純なパスの制約がありますが、私はすでに機能しているA *アルゴリズムを用意していますが、それは瞬間的な方向変更を可能にするので、車が突然90°回転するのを見るのはばかげているように見えます彼らが転換点に到達したとき、ダイムで。

2
三角形の隣接データの構築
三角形のインデックスのリストが与えられた場合、それをジオメトリシェーダーの隣接性を持つインデックスのリストにどのように正確に変換しますか? ここでは厳密にインデックスについて話していることに注意してください-頂点は存在しますが、浮動小数点比較やイプシロンに入る必要なしにそれらを使用して重複した頂点を一致させることができるため、インデックスのみに焦点を当てます-その仕事はすでに行われています。 リスト内の特定の三角形について、インデックス{0、1}、{1、2}および{2、0}(または{n、n + 1}、{n + 1、n + 2}、{ n + 2、n}必要に応じて)エッジから形成されます。インデックスリストは整形式であり、曲順を正しく順守します。 このようなエッジの場合、リスト全体を検索して、それらのインデックスのうちの2つを使用する別の三角形を検索できます。その三角形の3番目のインデックスは、そのエッジの隣接する三角形を完成するために使用するインデックスです。 隣接リストでは、元の三角形はそれぞれ6つのインデックスで表され、元のインデックスはスロット0、2、4に挿入されます。隣接関係を完了するための新しいインデックスはスロット1、3、5に移動します。エッジ{0、1}に対して完了するインデックスはスロット1に移動し、エッジ{1、2}に対して完了するインデックスはスロット3に移動します、インデックスエッジ{2、1}を完了するためにスロット5に入ります。 私は何を試しましたか? 私はそれを総当たりにしてみましたが、そうです、それでうまくいきますが、私はもっとエレガントなアプローチを求めています。 Eric Lengyelのエッジリストビルダーを試してみましたが、(1)元の三角形の順序が考慮されていないようです(2)曲がり順が考慮されていないようです(3)どこに行くか泥のように明確です次に、エッジリストを作成した後、(4)「triangleIndex」と「faceIndex」のような明白な明白なエラーがあるサンプルコードの疑いがあります。作成者もコードをコンパイルしたので、実行しないでください。確認しますか? だから-これからの提案やポインタは?

2
ドローンターゲティング
「ドローン」と2D平面上のターゲットポイントを想像してください。8つのパラメーターがあります。 P = my position Q = target position V = my velocity I = my moment of inertia w = my angular velocity s = my angular position T = max thrust U = max torque (ターゲットは静止しているとだけ言います) ドローンの仕事は、最大トルクと最大推力に従って、できるだけ早く目標に到達することです。これは2D平面のみであるため、トルクを適用する方法は2つしかありません。推力は、機体の向きに対して一方向にのみ進むように制限されており、ドローンを回転させずに狙うことはできません。抵抗を無視して、2Dの宇宙空間に漂っているように見せかけることができます。ドローンが時間間隔t(おそらく0.01秒ごとなど)で方程式をチェックし、パラメータを接続して、それに応じてトルクと推力を調整するとします。推力とトルクの方程式はどうあるべきですか?

1
gluLookAtはどのように機能しますか?
私の理解から、 gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 以下と同等です。 glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); しかし、ModelViewマトリックスを出力すると、への呼び出しがglTranslatef()正しく機能していないようです。コードスニペットは次のとおりです。 #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

3
相互に接続している部屋のリストがある場合、どのようにして孤立した部屋グループを見つけるのですか?
私は小さなローグライクを作成しようとしていて、ランダムに生成する部屋と廊下まで行きました。各部屋はインスタンス化されたオブジェクトであり、廊下で接続された他の部屋の配列リストが含まれています。 接続されていない部屋を選別することはできますが、互いに接続されているだけで他のほとんどの部屋には接続されておらず、島を形成している部屋を知るにはどうすればよいですか? ここで問題をよりわかりやすく説明するために、コンソールからの画像をぼんやりとしたレベルにしています。客室5と6は相互にのみ接続されています。それを検出するためにどのようなアルゴリズムを使用できますか?
9 java  algorithm 

3
スプライトシートを分解する方法
フォーマットが不十分で、分解したり、スプライトごとに1つずつ多くの小さな画像に分割したりしたいスプライトシートがたくさんあります。それができれば、カスタムテクスチャパッカーツールを使用してゲームアセットを構築できます。 私の開発ツールは、Windowsを対象としたXNAおよびC#です。画像を分解するにはどうすればよいですか?

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