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

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

2
単語を最も認識されない形式にスクランブルする
私の目標は、プレーヤーにスクランブルされた単語を提示し、それを元の形式に並べ直す必要があることです。 OELHL->ハロー 任意の単語(3文字または4文字以上、スペースが含まれる場合もある)を受け取り、認識されにくい形式に変換するスクランブルアルゴリズムが必要です。 すべての文字をランダムに移動することは確かに機能しますが、すべてのシャッフルが等しいわけではなく、一部のシャッフルは他のシャッフルよりも認識しやすいことがわかりました。誰かが、おそらく最も認識できない形式を保証するより良いアルゴリズム(おそらく言語学に基づいている)を知っている場合に、この質問を投稿しています。

1
Bomberman AIにインテリジェントな爆弾配置を与える
BombermanのAIアルゴリズムを実装しようとしています。現在、私は実用的ですが、あまりスマートではない初歩的な実装をしています(現在のAIは爆弾を配置することに熱心です)。 これは、私が実装を試みた最初のAIであり、少し立ち往生しています。私が念頭に置いているより洗練されたアルゴリズム(より良い決定を下すことを期待しているアルゴリズム)は複雑すぎて、良いソリューションにはなりません。 Bomberman AIを実装するための一般的なヒントは何ですか?ボットをより防御的または攻撃的にするための根本的に異なるアプローチはありますか? 編集: 現在のアルゴリズム 私の現在のアルゴリズムは次のようなものです(擬似コード): 1)爆弾を配置してから、配置したばかりの爆弾を含むすべての爆弾から安全なセルを見つけます。そのセルを見つけるには、4つの方向で繰り返します。安全な分岐セルを見つけて時間内に到達できる場合(例:方向が上または下の場合、このパスの左または右にあるセルを探します)、爆弾を置いて移動しても安全ですその方向に。 2)発散した細胞を見つけられない場合は、爆弾を置かずにもう一度見てください。今回は、安全なセルを一方向にのみ探す必要があります(そこから分岐する必要はありません)。 3)それでも安全なセルが見つからない場合は、何もしないでください。 for $(direction) in (up, down, left, right): place bomb at current location if (can find and reach divergent safe cell in current $(direction)): bomb = true move = $(direction) return for $(direction) in (up, down, left, right): do not place …
13 algorithm  ai 


2
射撃でインテリジェントな敵を実装する方法は?
誰もが知っている、非常に単純なシューティングを想像してください。 あなたはプレイヤーです(緑)。あなたの動きはX軸に制限されています。私たちの敵(または敵)は画面の上部にあり、彼の動きもX軸に制限されています。プレイヤーは敵に弾丸(黄色)を発射します。 プレイヤーの弾丸を回避するのに本当に優れているはずの敵にAIを実装したいと思います。私の最初のアイデアは、画面を個別のセクションに分割し、それらに重みを割り当てることでした。 2つの重みがあります。「弾丸の重量」(灰色)は、弾丸によって課される危険です。弾丸が敵に近ければ近いほど、「弾丸の重量」0..1が高くなります(ここで、1が最も危険です)。弾丸のないレーンのウェイトは0です。2番目のウェイトは「距離ウェイト」(ライムグリーン)です。すべての車線に0.2移動コストを追加します(この値は現在では任意であり、調整可能です)。 次に、重みを追加し(白)、重みが最も小さいレーンに移動します(赤)。しかし、このアプローチには明らかな欠陥があります。最適な場所は、 2つの入ってくる弾丸の間(白い矢印で示されているように)であるため、極小値を簡単に見落とす可能性があるからです。 だからここに私が探しているものがあります: 弾丸の脅威を課す場所がない場合でも、弾丸嵐を乗り越える方法を見つける必要があります。 敵は、最適な(またはほぼ最適な)ソリューションを選択することで、確実に弾丸をかわすことができます。 アルゴリズムは、弾丸の移動速度を考慮できる必要があります(異なる速度で移動する可能性があるため)。 さまざまなレベルの難易度を適用できるようにアルゴリズムを微調整する方法(超知能の敵には馬鹿です)。 敵は弾丸を避けたいだけでなく、プレーヤーを撃つこともできるため、アルゴリズムはさまざまな目標を許可する必要があります。つまり、弾丸をかわすときは、敵がプレイヤーを射撃できる位置が優先されるはずです。 それでは、これにどのように取り組みますか?このジャンルの他のゲームとは対照的に、私は少数の、しかし非常に「熟練した」敵を大勢の愚かな敵の代わりに持ちたいです。

5
カードゲームでカードのドロップシャドウ効果を描画するために、どのレンダリングテクニックを使用しますか?
どのような種類のシェーディングアルゴリズムを使用して、これらのような影を作成できますか? 私が作っているものは似ていますが、すべてOpenGLを使用した2D描画APIで行われているため、Z座標はありません。 さらに、手自体については、次のような陰影を付けたいと思います。 それに近い影付きの外観を実現する方法がわかりません。 カードの数は変化するはずであり、カードはテーブルに投げられるので、どのような種類のライトマップも使用できません。 どのような種類のアルゴリズムを検討する必要があります(実行する必要があるとわかっているぼかしは別ですか?) ありがとう 更新 2Dカードゲームを作っています。私は、カードからドロップシャドウのオフセットを少し追加します: 私がそれをすることを考えている方法は次のとおりです。 バックバッファと同じサイズのテクスチャを保持します。 そのテクスチャの間に合わせのカードとして暗い長方形を描きます。 そのテクスチャをぼかします。 そのテクスチャにカードを引きます。 カードをさらに照明します。 このテクスチャをバックバッファに描画します。 私の質問は: これは正しい方法ですか? テクスチャにレンダリングせずにそれを行う方法はあり ますか(バックバッファと同じ大きさのビットマップを保持します)? バックバッファサイズが最大テクスチャサイズを超えないと想定しても安全ですか?(つまり、バックバッファ が2000x3000 であれば、 そのサイズのビデオメモリにテクスチャを作成できると言っても安全ですか? ありがとう

3
ビート検出とFFT
私はビート検出付きの音楽を含むプラットフォーマーゲームに取り組んでいます。現在、現在の振幅が履歴サンプルを超えているかどうかを確認することで、ビートを検出しています。これは、かなり安定した振幅を持つロックなどの音楽のジャンルではうまく機能しません。 そこで、さらに調べて、FFTを使用してサウンドを複数の帯域に分割するアルゴリズムを見つけました...そして、Cooley-Tukey FFtアルゴリズムを見つけました 私が抱えている唯一の問題は、私がオーディオにまったく慣れていないことであり、それを使用して信号を複数の信号に分割する方法がわかりません。 だから私の質問は: FFTを使用して信号を複数の帯域に分割する方法 また、興味のある人のために、これはc#の私のアルゴリズムです: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = soundData.Samples; float timePerSample = 1 / (float)soundData.SampleRate; int sampleIndex = 0; int nextSamples = 1024; // …

2
オブジェクトがターゲットを導くために敵の位置を予測する
2Dゲームには、敵に向かって自動的に発砲することでプレイヤーを支援するAIタレットがあります。敵の現在位置をターゲットにするのではなく、インテリジェントに発砲させてターゲットをリードさせたいと思います。したがって、敵と砲塔の発射体の両方の(常に一定の)速度と位置ベクトルが与えられた場合、発射体が敵と交差(およびヒット)するために砲台が目標とする実際の位置を表すベクトルを見つけるにはどうすればよいですか? 数学、アルゴリズムなどを説明する記事へのリンクはありがたいです!
13 algorithm  ai  aiming 

1
複数の長方形をより少ない数の長方形に「修復」するためのアルゴリズム?
さまざまな形と色の長方形のグリッドがあり、同じ色のレイアウトを表す長方形の数を減らしたい(最適に近いほど良い、最適である必要はない)とします。 上の画像は非常に単純化されたケースであり、長方形間の空白は視覚化のみを目的としています-実際には密に詰め込まれています。 これを行うのに役立つアプローチまたはアルゴリズム名(Googleに満足)とは何ですか?

5
Bresenhamのラインアルゴリズムを浮動小数点エンドポイントに一般化するにはどうすればよいですか?
私は2つのことを組み合わせようとしています。私はゲームを書いていますが、浮動小数点の端点を持つ線上にあるグリッドの正方形を決定する必要があります。 さらに、接触するすべてのグリッド正方形(つまり、ブレゼンハムの線だけでなく、青の線)を含める必要があります。 誰かが私にそれを行う方法に関する洞察を提供できますか?明白な解決策は、単純なラインアルゴリズムを使用することですが、より最適化された(高速な)ものはありますか?

3
凸多角形を追加および削除するにはどうすればよいですか?
2つの2D凸ポリゴンが互いに重なり合っています。それらを減算して追加するアルゴリズムを探しています。結果は、単一の凹多角形、または(さらに良い)凹結果を形成する最大の凸多角形(三角形など)でなければなりません。 (左:最初に重なり合うポリゴン。中央:追加後の凹型ポリゴン。右:凹型結果を形成する凸型ポリゴンのセット。パフォーマンス上の理由から、三角形よりも大きい凸型ポリゴンを取得することをお勧めします。 2つの重なり合うポリゴンは、左側と同じ画像になりますが、重なり合う領域は結果のポリゴンの一部ではありません。) これどうやってするの?
12 algorithm 

2
古いゲームで衰退します。アルゴリズムがどのように導出されたかを理解するのに助けが必要
申し訳ありませんが、この質問は少し難解ですが、頭から出せないだけです! アーケードゲームDoDonPachi(および他の多くの古いゲーム)で使用されているフェードアルゴリズムを見ています。 数個のピクセルを選択し、フェードの持続時間にわたって追跡するためのpythonスクリプトを作成しました。結果の代表的なサンプルを次に示します。各グループの最初の行は開始色値であり、後続の各行は現在のフレームの色値と前のフレームの色値の差です。 Starting Value: (132, 66, 189) Frame 1: [9, 9, 8] Frame 2: [8, 8, 8] Frame 3: [8, 8, 8] Frame 4: [8, 8, 9] Frame 5: [9, 9, 8] Frame 6: [8, 8, 8] Frame 7: [8, 8, 8] Frame 8: [8, 8, 9] Frame 9: …
12 algorithm  arcade 

3
2Dグリッドマップでの道路/河川の生成
これは初心者の質問ですが、ここにそれがあります: 私のマップは2Dグリッドであり、道路と川を生成したいです。開始点から終了点までのルートは、タイル数で最適なルートであってはなりません。代わりに、一定レベルのランダム性(ターン)が必要です。 この種のものに標準的なアルゴリズムはありますか? 乾杯! 更新: これは、グリッド上の重みで遊んで、jgraphtライブラリを使用して最短経路アルゴリズム(Bellman-Ford)を適用した結果です。結局、ドーナツの答えに行きました。 http://pastebin.com/AGQGK5ik

4
アイソメビューフラッシュゲームで描画順序を決定するにはどうすればよいですか?
これは、等角投影ビューのフラッシュゲーム用です。オブジェクトを並べ替える方法を知る必要があるので、描画時にzバッファをチェックする必要はありません。これは簡単に思えるかもしれませんが、別の制限があります。シーンには10,000個以上のオブジェクトを含めることができるため、アルゴリズムはO(n ^ 2)未満で実行する必要があります。すべてのオブジェクトは長方形のボックスであり、シーン内で3〜4個のオブジェクトが移動しています。これを行う最良の方法は何ですか? 更新 各タイルにはオブジェクトのみがあります(つまり、オブジェクトを互いに重ねることはできません)。オブジェクトのマップとオブジェクトの両方にアクセスし、それぞれの位置を持っています。 更新2 これらの図を参照してください。 最初に最初に青いオブジェクトを描画し、次に緑、次に赤を描画します。一方、2番目では逆の順序で描画する必要があります。最初に赤、次に緑、最​​後に青のオブジェクトを描画する必要があります。ご覧のとおり、青と赤のオブジェクトの位置に違いはありません。両方ともカメラからの距離が異なります。しかし、緑色のボックスに対する相対的な位置のため、2つの画像間で描画順序を変更する必要があります。それがこの問題を混乱させるものです。 補足:すべてのオブジェクトは直角プリズムであるため、問題のニーズを満たすために少なくとも1つの描画順序があることを数学的に証明できます。

1
2Dヘリコプターゲーム、廊下の壁を作成する方法は?
私は古典的な「ヘリコプター」ゲーム(つまりhttp://www.addictinggames.com/helicopter.html)の適応を検討していますが、壁生成エンジンの作成方法はまだわかりません。 擬似コードへのポインターはありますか?中間のオブジェクトにはあまり興味がありません。ゲームの進行に伴って難易度が増す(閉じる、予期しない曲線を持つ)方法で側面を生成する方法のみに興味があります。

4
AIエージェントを曲線に沿って移動させるにはどうすればよいですか?
現在、私の非常に基本的なAIフレームワークには、一連のポイントで構成されるギザギザのパスに沿って移動するエージェントがあります。 これは、ある地点から次の地点に位置を移動するだけです。次のポイントに到達すると、次のポイントに向かって移動します。曲線バージョンのパスに沿ってスムーズに移動するようにこれを変更するにはどうすればよいですか?また、曲線を生成するにはどうすればよいですか?

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