2017-03-29 1 views
-2

私はサッカーのマッチ処理を実装したいので、私はそれを行うための良いアルゴリズムを見つけるのに多くの時間を費やしました。私は入力としていくつかのデータを持っています - いくつかのパラメータを持つ選手。いくつかのパラメータは、マッチングが処理(スキル)中に静的であり、それらのうちのいくつかはプロセス中で変化する動的(物理的状態、精神状態)である。また、手動で変更できる外部パラメータもあります。私はそれが本当のサッカーにとても近い必要はありません(結果を除いて、20:0はとにかく恐ろしいでしょう)。最後の主なアイデアは、同じ入力が同じ出力につながることではないということです。中間計算の中には、ランダムな値を返すものがあります。サッカー(サッカー)マッチ処理

近い将来、約1000件のマッチを同時に処理する必要があるため、アルゴリズムの速度はそれほど遅くあってはいけません。各ステップは3秒に1回計算されます。また、これらの手順は論理的にリンクする必要があります。なぜなら私はすべてのボールとプレイヤーの動きとのグラフィックマッチ処理を行うからです。

私にはどのようなアルゴリズムをおすすめできますか?私はニューラルネットワークについて考えましたが、これは良い解決策であるとは確信していません。

あなたが本当にありがとう、私はそれを見つけるために半年を費やしたので、私を助けます!

+0

2組のキャラクターがあり、ゲームよりも結果を返すか、 FIFAのCPU対CPUの近くに? –

+0

@ArkadiuszRaszeja、それはFIFAに少し近いでしょう、もっとサッカーマネージャーに。いくつかのパラメータは、結果の計算を段階的に行います。各ステップは3秒に1回。現実主義は問題ではなく、基本的な行為(目標、パス、ドリブル、落ち込み) – timbset

答えて

0

ゲームの5分ごとに「アクション」があるとしましょう。したがって、90/5 = 18アクションです。それがより現実的にするためにあなたのような乱数を選択することができます。

numberOfActions = round(10,20); 

この番号は()のために、あなたのな長さとして現れることができます。 2組のプレイヤーの防御と攻撃のパラメータが相互作用するよりも、もちろん

if((TeamA.Offence-TeamB.Defence)*10 > round(0,100)) 
{ 
    TeamA.points++; 
} 

ゴールキーパーは、多分かなり、この確率を減らすことができます。offenceA-defenceBの各点は、成功するために10パーセントのチャンスを作成すると言うことができます。
など。もちろん、もっと複雑にすることもできます。あなたがボールを持っている人に応じて、特定のプレイヤーの統計だけを比較することができます。あなたの攻防両方のパラメータは、時間によって減少した状態で上昇させることができる。

TeamA._realOffenceValue = 
    TeamA.Offence* 
    (1-i/numberOfActions)* 
    (TeamA.leftOffencePlayer.Condition); 

はフットボールマネージャーやヨーロッパUniversalisのようなゲームでは、プレイヤーの不正行為についてのすべてだということを覚えておいてください。ゲームのバランスをとることは何時間もの仕事であり、誰もあなたのフォーラムでそれを作ってくれません:)

+0

もちろん、バランシングはもう一つの問題だと私は理解しています。私はちょうど私に必要なアルゴリズムが存在するかどうかを知りたがっています。今私はランダムな結果の生成を持っています。速いですが、結果は本当に近いですが、「プレーヤーがゴールに近づいてボールをあまりにも高く蹴った」のようなイベントの進行状況を表示することはできません。私は2Dグラフィックプロセスについては話しません – timbset

関連する問題