2009-08-14 8 views
2

通常、サッカーマネージャーゲームのプレーヤーは市場価値があります。マネージャーは、これらの市場価値に応じて選手を販売します。彼らは次のように思っています。「ああ、プレイヤーは3,000,00という価値があるので、彼を350万ドルで売ろうとします。マネージャーゲーム:市場価値を計算するには?

  • 強度値(1〜99)
  • 最大強度、彼らがこれまでに達成することができる(1-99)
  • モチベーション(1-5)
  • 全てのプレイヤーは、3つの基本的な資質を持っています現在の年齢(16-40)

これらの値に基づいて、私は現在の市場価値を計算します。しかし、私は市場価値を最後の期間におけるプレーヤーの移転に従って動的に計算したいと思います。どうすればこのことができますか?

私は上記の性質を持っており、プレイヤーは計算に利用可能な最後の期間を転送します。

どうすれば計算できますか?最後に移籍した選手をその資質でグループ化し、平均移転価格を単に取る必要がありますか?

私があなたを助けてくれることを願っています。

alt text http://i31.tinypic.com/2iglr3d.png

注:あなたができる選手=アイテム/商品、マネージャ=ユーザー

+2

この質問はどのように答えることができません。何かの "市場価格"は、プログラマーの束が答えることができる質問ではありません。環境の詳細な知識がなければ、何かを選ぶ論理的な理由はありません。 –

+0

お粗末な言葉を使っています。 「市場価格」とは、市場で入手可能な価格を意味しますが、何も意味しないゲームエンジンの数字を指しているようです。過去の売上に基づいて実際の市場価格を計算する方法を尋ねる場合、答えは「はい」で、過去の売上を4つの値と時間でプロットしてから傾向を探します。 – Beta

+0

あなたのテーブルの値があなたの質問であなたが与えた値の範囲と一致しません... –

答えて

7

私の提案:2人のプレーヤーの統計値をとり、距離値を返すdistance functionを定義します。 2つの間に距離があるので(類似点に相当)、K-meansアルゴリズムを使用して類似のプレーヤーのクラスターを見つけることができます。

各クラスタについて、いわゆる「市場価格」(平均値または中央値など)を計算するのに役立ついくつかの値を取ることができます。今、あなたはあなたがk平均アルゴリズムを適用することができ、距離機能を持っていることを

float distance(Player player1, Player player2){ 
    float distance = 0.0; 

    distance += abs(player1.strength - player2.strength)/strengthRange; 
    distance += abs(player1.maxStrength - player2.maxStrength)/maxStrength; 
    distance += abs(player1.motivation - player2.motivation)/motivationRange; 
    distance += abs(player1.age - player2.age)/ageRange; 

    return distance; 
} 

:ここ

は、あなたが2人の選手間の距離関数を計算できるかの非常に単純な例です

  1. 各プレイヤーをランダムにクラスタに割り当てます。

  2. ここで、各クラスタのセントロイドを計算します。あなたの場合、セントロイドの座標は(強度、最大強度、モチベーション、年齢)になります。重心強度座標を計算するには、たとえば、クラスタ内のすべてのプレイヤーの強さを平均します。

  3. ここで、各プレーヤーを最も近い重心に割り当てます。このステップでは、一部のプレイヤーがクラスタを変更している可能性があります。あなたは収束を持っているか、言い換えれば、プレイヤーまで、そのクラスタは、ステップ3

に変更するまで

  • を繰り返して、今、あなたは、クラスタを持っていることを、あなたは平均を計算することができます2と3ステップ類似のプレイヤーに対抗する価格。

  • +0

    +1良いアイデア______ –

    +0

    ありがとうございました! 「市場価値は、単純に、強さ、最大の強さ、モチベーションと年齢の同じ組み合わせのすべての販売価格の平均です。だから私は距離関数をコーディングしなければならず、ある距離内のすべてのプレイヤーは1つのグループに移動します。すべてのデータをマトリックスに記入できますか?私がクラスターを持っていれば、私は価格の平均を取るだけです。 – caw

    +0

    この詳細な編集をありがとうございます。 :)私はまだいくつかの質問を持っています:どのセントロイドが最も近いものかをどのようにして決めますか?あなたが言ったようにセントロイドは4つの座標を持っています。そして、いくつのクラスタを構築する必要がありますか?私は収束までそれを繰り返すので、これは問題ではありませんか? – caw

    0

    ことの一つは、同様の(1)選手の最近の移転を見ています。類似のプレーヤーの2〜5ゲーム週以内にすべての送金をしてから、その販売価格の平均(または中央値または他の計算された値)を取る。

    (1)あなたは何らかの形で、つまり防御側に+ -10、通過時に+ -3、+ 2歳に防御側を定義する必要があります。より多くの要因により、より正確な結果が得られます。

    +0

    ありがとうございます。平均を取ることは良いアイデアのようです。私はこれをどこかで読んでいます:「市場価値は、単純に、強さ、最大の強さ、モチベーションと年齢の同じ組み合わせを持つプレーヤーのすべての販売価格の平均です。しかし、私はどのようにこれをコード化することができますか(例えば、PHP)?私はすべてのコンビネーションで(1)を行うことはできません... – caw

    +0

    すべての統計値の+ -2ですべてのプレイヤーを検索し、その移転価格を平均することで、これを簡単に行うことができます。それを一般的に行う別の方法は、支配力に応じて分散を調整することです。だから、もし最強のスタットが通過していれば、2番目に強い+4、+ -3、残りは+ -2を使う。これは価格にも影響を与える可能性があるので、年齢の間隔で同じことをすることができます。あなたは若い選手の年齢を、中途半端な選手よりも小さくすることをお勧めします。 – Runeborg

    +0

    これは簡単なクエリでも簡単に行うことができます:SELECT AVG(transferPrice)FROM Transfers where pass> @ pass-2 AND passing <@ pass + 2 AND ... – Runeborg

    0

    それとも、少し経済学101を使用してに基づいて、その特定のプレーヤーのための供給と需要を定義しようとすることができます:あなたが言及したクラスタリング手法を使用することができます同様の機能を持つリーグのプレイヤー(の

    • 数前)と転送のためのそれらのプレーヤーの数「利用可能」
    • 今、これらの番号を使用すると、calcuことができ、そのような選手

    のために必要としている同様の機能とチームの数を持つ選手を所有するチームの

  • 数(譲渡可能なプレイヤー)と需要(それらのプレイヤーが必要なチーム)を使用して、ベース価格(プレイヤーの最終移譲価格または基本価格)を変更するために使用する

    その後、実際の為替価格を解決するためにゲーム理論の文献のいくつかを見ることができる交渉ゲームになります。

    これは少なくとも、あなたにそれを見せるためのものです。

  • 関連する問題