ゲーム(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
私はこれに取り組んできました:
各オブジェクト(プレーヤーのスキル、オートアタック、バフ)の残り時間をチェックし、常に最短の時間を選択して、last_timeを保存し、時間を追加します。次のラウンドでは、(time-前回)
オブジェクトの残り時間が0の場合、オブジェクトは必要なことをすべて実行します。
それが効率的な方法かどうかはわかりませんが、それが私ができる最善の方法です。