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

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

6
色を変更して背景よりも似ていないようにするアルゴリズム
単色で塗りつぶされた背景で、互いに跳ね返る20個のボールのデモを作成しています。各ボールの色はrandint(0, 255)、R、G、Bの各タプルコンポーネントに対してランダムに選択されます。 問題は、一部のボールが背景に非常に似た色になり、見づらくなることです。選択した色が類似している場合(特定のしきい値内)に別の色を回転させるか、背景色から遠ざけることで、それを回避したいと思います。 しきい値として使用する類似性インデックスを計算する方法は?または、色を変換して、たとえば青みを弱める方法はありますか? 明白な免責事項:私は色理論について何も知らないので、上記の概念が存在するかどうかも知りません! 私はPythonでコーディングしていますが、概念と戦略を探しているので、擬似コードは問題ありません(理論のみ)。 編集: いくつかのポイントを明確にするには: 各ボールには、独自のランダムな色があります。私はそれらを可能な限りランダムに保ち、色空間を可能な限り探索したい(RGBかHSVかにかかわらず、色pygameを定義するために両方の形式を受け入れます) それぞれの色が背景に「近すぎる」ことを避けたいだけです。問題は色相だけではありません:濃い青の背景に明るい青のボール(または「白っぽい」青に「フルブルー」)で完全に問題ありません 今のところ、ボールの色が他のボールと似ている(または同一である)かどうかは気にしません。それを避けることはボーナスですが、それは小さな問題です。 背景色は、一定の単一のRGB色です。今のところ、私は "basic" blueを使用(0, 0, 255)していますが、それで満足していません。したがって、背景は任意の色(任意の色相、明度、彩度など)であると考えてください。 EDIT2: TL、DRバージョン: Xランダムカラーを作成する方法を与えるだけで、任意の(ただし、単一で一定の)色の背景に対して「過度にフェードイン」しないようにする
23 algorithm  color 

6
2Dゲームの滑らかな地形を生成する最も簡単な方法は何ですか?
「Moon Buggy」や「Route 960」などの2Dゲームで滑らかな地形を生成する最も簡単な方法は何ですか? stackoverflow.comで、ランダムな高さの配列を生成し、後でそれらをぼかすことについての回答を得ました。はい、大丈夫です。しかし、いくつかのポイントを与えて、滑らかな曲線を取得する方が良いでしょう。

7
重力計算の最適化
互いに引き寄せられるサイズと速度がさまざまなオブジェクトがたくさんあります。更新するたびに、すべてのオブジェクトを調べて、他のすべてのオブジェクトの重力による力を加算する必要があります。それはあまりうまくスケールせず、ゲームで見つけた2つの大きなボトルネックの1つであり、パフォーマンスを改善するために何をすべきかわかりません。 パフォーマンスを改善できるはずだと感じています。常に、システム内のオブジェクトの99%がオブジェクトに与える影響はごくわずかです。もちろん、オブジェクトを質量でソートすることはできず、力は質量よりも距離によって大きく変化するため、上位10個の最大オブジェクトまたは何かのみを考慮することができます(方程式はに沿っていますforce = mass1 * mass2 / distance^2)。何かに影響を与えないかもしれない世界の反対側にある何百もの小さな岩の断片を無視して、最大のオブジェクトと最も近いオブジェクトを考慮することは良い近似だと思いますが、どのオブジェクトが最も近い私はすべてのオブジェクトを反復処理する必要があり、それらの位置は絶えず変化しています、それで私が一度だけできるのではない。 現在、私はこのようなことをしています: private void UpdateBodies(List<GravitatingObject> bodies, GameTime gameTime) { for (int i = 0; i < bodies.Count; i++) { bodies[i].Update(i); } } //... public virtual void Update(int systemIndex) { for (int i = systemIndex + 1; i < system.MassiveBodies.Count; i++) { GravitatingObject body …

6
スペルキャスト-毎秒のダメージを最適化する方法
いくつかの呪文を知っているウィザードがあると想像してください。各スペルには、ダメージ、クールダウン時間、キャスト時間の3つの属性があります。かなり標準的なRPGのもの。 クールダウン時間:その呪文を再び唱えることができるまでにかかる時間(t)。呪文は、キャストを開始した瞬間に「クールダウン」します。 キャスト時間:呪文を使用するのにかかる時間(t)。ウィザードが何かを唱えている間、別の呪文は唱えられず、キャンセルすることもできません。 質問は次のとおりです。異なるスペルのセットを与えられた場合、どのようにダメージを最大化するのでしょうか? キャストタイムごとの最大ダメージを計算するのは簡単です。しかし、はるかに高い呪文が利用可能な場合、低ダメージの呪文を「スタック」してキャストするのを待つ方が良い状況ではどうでしょうか? 例えば、 ファイアボール:3000ダメージ、3秒のキャスト時間、6秒のクールダウン。 フロストボルト:ダメージ20、キャスト時間4秒、クールダウン4秒。 ファイヤーブラスト:ダメージ3、キャスト時間3秒、クールダウン3秒。 この場合、フロストボルトではなく、DPCTの低いスペル(ファイアブラスト)を選択すると、1秒あたりのダメージが大きくなります。そのため、呪文を選択した結果を考慮する必要があります。 次の例は、「オーバーキャスト」と「待機」の場合です。

3
タイルエンジンでランダムな「世界」を作成するにはどうすればよいですか?
クラシックタイルエンジンで動作するゲームを設計していますが、その世界はランダムに生成されます。これを行う既存のゲームやアルゴリズムはありますか?私が見つけた手続き生成アルゴリズムは、タイルシステムを使用することはありません...タイルシステムを使用して「世界」全体を生成する最良の方法は何でしょうか。私はブロックの迷路についてではなく、全体的な「世界地図」について話している

1
マウス座標を等尺性インデックスに変換する方法は?
タイル64x32で等尺性マップを描画します。 const Offset = 160; int X, Y; for (int a=0; a < 6; a++) for (int b=0; b < 6; b++) { X = a * 32 - b * 32 + Offset; Y = a * 16 + b * 16; DrawTile(X, Y, tile); } このコードを示す画像: 親愛なる専門家は、セルの等尺性インデックスでのマウス座標の変換式を手伝ってください。例:(105; 100)-> …

3
チェッカー/ドラフトにAIを実装する方法は?
このチェッカーゲームを見て、AIがどのように実装されているのか疑問に思いました。 チェッカー(ドラフト、ダマ、ダメ)にAIを実装するにはどうすればよいですか?既知のアルゴリズムはありますか? すべてに完全にひそかに。このTic Tac Toeゲームチュートリアルのブログ投稿を見るのは非常に不思議です。 だから、私はダマゲームアルゴリズムのオープンソースコードとブログの投稿が欲しいです。役に立つリンクやドキュメントファイルはありますか?私にお知らせください..
21 algorithm  ai 

3
障害物の周りの多くの群がっている敵を効率的に経路探索する
私はゲームの敵の経路探索を改善しようとしています。現在、彼らは基本的に、プレイヤーとプレイヤー間の角度を計算し、その方向に移動することにより、プレイヤーの正確な位置に向かって絶えず移動しています。また、敵が互いの上に積み重なるのを防ぐ群れアルゴリズムを持っているので、敵が互いを挟むのではなくグループになります。 ただし、タイルベースのマップを追加したので、たとえば障害物や壁の周りを敵が通過できるようにする必要があります。私は最初、群れアルゴリズムが壁や障害物を遠ざけるオブジェクトと見なすように、「歩行不可能な」タイルに分離値を追加しようとしました。私の最初のテストでは、敵が歩くことのできないタイルのない目に見えない「壁」にぶつかったことが示されたので、これが実現可能かどうかはまだ解明していません。 A *を使用してプレーヤーへのパスを計算し、群れを防ぐために群れアルゴリズムを使用するには、パフォーマンスが重すぎるのではないかと考えていました。もともと私のゲームは波ベースのシューティングゲームになる予定でしたが、代わりにホットラインマイアミの静脈内でレベルベースにすることを決めたので、たまに大群とともに敵を減らし、それらが強くなります。 これは実行可能なソリューションですか?ゲームエンジンとしてSlick2DでJavaを使用しています。または、これら両方の問題に取り組むより良い解決策/アルゴリズムがありますか?


6
エッジがラップされた世界での移動方向の検索
この質問は、Game Development Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 2Dワールドのある点から、エッジがラップされている別の点(小惑星など)までの最短距離方向を見つける必要があります。私は最短距離を見つける方法を知っていますが、それがどの方向にあるのかを見つけるのに苦労しています。 最短距離は次のとおりです。 int rows = MapY; int cols = MapX; int d1 = abs(S.Y - T.Y); int d2 = abs(S.X - T.X); int dr = min(d1, rows-d1); int dc = min(d2, cols-d2); double dist = sqrt((double)(dr*dr + dc*dc)); 世界の例 : : T : …
20 c++  algorithm 

3
履歴生成アルゴリズムはどのように機能しますか?
ドワーフ要塞というゲームについて聞いたことがありますが、YouTubeでフォローしている人の1人だけがそれについて解説しました。 さて、これらのアルゴリズムはどのように機能しますか?シミュレーションの長さを除いて、通常は入力として何を使用しますか?それらはどれほど具体的ですか? そして更に重要なことに; Javascriptで作成できますか、またはJavascriptが遅すぎますか?(これはシミュレーションの深さに依存しますが、例としてDwarf Fortressを取り上げます。)

5
円(画像)内のランダムポイント(ピクセル)を計算する
特定の場所に特定の直径の円を含む画像があります。私がする必要があるのは、円内のランダムな点を計算し、その点が相関するピクセルを操作できるようにすることです。私はすでに次のコードを持っています: private Point CalculatePoint() { var angle = _random.NextDouble() * ( Math.PI * 2 ); var x = _originX + ( _radius * Math.Cos( angle ) ); var y = _originY + ( _radius * Math.Sin( angle ) ); return new Point( ( int )x, ( int )y ); } …
19 c#  algorithm 

3
Minecraftのようなエンジン用に浮遊陸地を生成するにはどうすればよいですか?
XNAでMinecraftのようなエンジンを作成しています。私がやりたいのは、このビデオに示すような浮島を作成することです。 http://www.youtube.com/watch?v=gqHVOEPQK5g&feature=related ワールドジェネレーターを使用してこれをどのように複製しますか?Perlinノイズアルゴリズムを使用する必要がありますか?そのような土地を作るのにどのように役立つかわかりません。 以下は、私が使用しているパーリンノイズジェネレーターのコードです。 private double[,] noiseValues; private float amplitude = 1; // Max amplitude of the function private int frequency = 1; // Frequency of the function /// <summary> /// Constructor /// </summary> /// public PerlinNoise(int freq, float _amp) { Random rand = new Random(System.Environment.TickCount); noiseValues = new double[freq, …

3
リアルタイムの動的経路探索?
現在、いくつかの経路探索の研究を行っています。シミュレーションは次のとおりです。開始点と終了点が表示された3Dシーンがあり、経路探索を支援するナビゲーションメッシュ、ウェイポイント、およびポリゴンを作成できます。 A *アルゴリズムとそのバリアントのいくつかを試しましたが、完全に機能します。しかし、今では「動的な」経路探索にもっと興味があります。たとえば、ポイントAからポイントBへのパスを見つけているときに、新しい障害物が突然現れた場合、アルゴリズムがすぐにパスを再計画できるようにして、最初から検索を開始しないようにします。 私はD *アルゴリズムを読んで、これが必要なものに適しているのか、それともやり過ぎだと思わないのか疑問に思っています。 したがって、私の質問は基本的に次のとおりです。リアルタイムダイナミックパスファインディングに最適なアルゴリズムは何でしょうか。または、代わりにどのような技術の組み合わせを使用できますか?

3
手続き的に生成された世界のチャンクを他の世界のチャンクに一致させる
ロジャー・ゼラズニーの 『アンバーのクロニクル』を読んだことがありますか? 自分が3人称MMOゲームでプレイしていると想像してください。あなたは世界に出現し、さまよい始めます。しばらくして、マップを学習したと思ったとき、あなたはその場所にいること、今まで見たことのないことを悟ります。あなたが知っていると確信していた最後の場所に戻り、それはまだそこにあります。しかし、世界のその他の地域は変化しており、あなたはそれがどのように起こったかにさえ気づきませんでした。 手続き型の世界世代について読んだことがあります。パーリンノイズとオクターブ、シンプレックスノイズ、ダイアモンドスクエアアルゴリズム、構造プレートのシミュレーションと水の侵食について読みました。手続き型の世界生成における一般的なアプローチについて、漠然と理解していると思います。 そして、この知識があれば、上記のようなことをどのように行うことができるかについてはわかりません。私の頭に浮かぶすべてのアイデアは、いくつかの理論的な問題に遭遇します。ここに私が考えることができるいくつかのアイデアがあります: 1)入力としてシード番号といくつかの完全に記述されたチャンク番号を持つ「リバーシブル」世界世代 私はそれが可能でさえあるとは思いませんが、シードを受け取り、チャンクが構築される数のマトリックスを生成する関数を想像します。また、一意の番号ごとに一意のチャンクがあります。そして、この一意のチャンク番号を取得し、この番号を含むシードを生成する2番目の関数。私は下の写真のスキームを作成しようとしました: 2)チャンクを完全にランダムにし、それらの間にトランジションを作成します。 Aracthorが示唆されました。このアプローチの利点は、それが可能であり、魔法の機能を必要としないことです:) 私の意見では、このアプローチの短所は、多様な世界を持つことはおそらく不可能だということです。群島と大陸の両方が1つの数字で表され、隣接するチャンクであるとすると、チャンクのサイズは大陸と等しくなりません。そして、チャンク間で見栄えの良い遷移を行うことができるとは思えません。何か不足していますか? つまり、手続き的に生成された世界を持つMMOを開発しているということです。しかし、1つの世界を持っている代わりに、あなたは多くを持っています。ワールドを生成するためにどのようなアプローチをとり、プレイヤーが遷移に気付かないで、ある世界から別の世界へのプレイヤーの移行をどのように実装しますか。 とにかく、私はあなたが一般的な考えを持っていると信じています。どうしましたか?

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