Laplace
lapla****@csc*****
2003年 3月 3日 (月) 21:20:41 JST
laplaceです。 > L> 黒澤さんから頂いたサンプルロボットのデータをベースに > L> グラフと過去の対戦データを表示してみました。 > こ、こいつはすばらしい! > テストサイトをアップデートしました。 どうも有難うございます。 サンプルだと一瞬で表示されたのでOKかと思ったのですが、 やっぱり100シーズンともなると重いですね。 さらに対戦ロボット数が増えるとかなりやばいかな? > ロボットの特徴グラフなんですが、 > 各数値の最大値はいくつなんですか? 現在は200をmaxにしています。 テーブルの大きさからもう少しいきそうな感じがしますよね(^^;;; 今は1vs1しかないので、Meleeのものを横に載せれたら いいなと思っています。 > それと、各特長の計算方法をサイト上で説明した方がいいですね。 > ルールのところに書くのがいいのかな? そうですね。いずれは載せる必要がありますね。 データやグラフの見方というページを別途作成がよさそうです。 現状は以下のような計算式です。 かなり見直しが必要かと思います。 なにかいい案や計算方法があればお願いします。 得点力:総合得点/ラウンド数 攻撃力:2*(BulletDamage+BulletBonus)/ラウンド数 機動力:200 - 4/3*(EnemyBullet+EnemyRam)/ラウンド数 突撃性:5*(RamDamage+RamBonus)/ラウンド数 柔軟性:得点力*ラウンド勝率 1vs1 :200*ラウンド勝率 サンプルで試していたということもあって、 若干、意図した結果と違っていますので、 少々修正したいなと思っています。 得点をベースに計算するのではなく、 XX力・性は何らかの比率で計算したほうがいいのかな? 得点力:ラウンド平均スコアが100以上の回数/ラウンド数*200 その他も同様な感じで計算。 突撃性:RamFireがより200に近くなるように補正(1.5〜2倍するか?) もっと賢いRamを行うものがいるならそれが200になるように 補正したいですね。(数ターン後に移動する場所を予測してRamとか) 相手に反重力が多いとRamできないんですよね(笑) 機動力:SittingDunkがより0に近くなるように補正 現在の計算方法からするとちょっとマージンを取りすぎたかも しれません。 柔軟性:Scoreのマイナスの数が少ないものが良いとなるような計算方法 マイナスでも値が小さいものが良い。 下の案だとスコア100以上が少ないほど良いとなる。 Score:SilverBraveで使用しているスコアのつけ方を流用しようと思います。 同レベルのロボットは100となり、100以上が苦手ロボ 100以下が得意ロボとなります。 350だと3.5倍強い(苦手)となる計算です。 超苦手なロボに対するスコアはヒドい値になってしまうので 今の-200〜200ぐらいがいいのかな? 今は1ラウンド辺りのスコアの差です。 次回はScore1,Score2と2種類表示しておこうかな。 > 各特長の高い順とかでランキングしたいですよね。 > とすると、計算が重いのであらかじめ計算しておきたいですね。 > SQLとか見ておきます。 あらかじめ計算は、リーグorシーズン終了単位で計算よりも 1バトル終了(12ラウンド等)がいいと思います。 そのほうがソース的にも修正が少なそう。 どれにしても結果をSQLに入れるとかなりのデータ量アップですよ。 各リーグのサンプルロボットをよくみてもらうとわかりますが、 同じロボでも対戦相手によってスコアがぜんぜん違ってきます。 上位陣は強い相手と戦うので勝率が落ちてグラフも変わるかもしれません。 その辺りを説明に加えないと駄目ですね。 どんな相手と戦っても同じような値が出るといいのですが… 理想は、RoboLeagueのDivision(総当り)での結果でグラフ作成です。 ということで、グラフの値でランキングは リーグ単位にしてもうまくいくか分からないです。 shinh.Entangledの詳細を見ていて気づきましたが ソートがうまく出来てない。 通常はしないような変なことをやったからか、 doubleの値が微妙な範囲だったのでしょう。 直しておきます(^^;;; 上級者のサンプルって強くなってるとか(笑) BambinoやSilverBraveも結構負けてますね…