katabami83 / gakumas_contest_simulator

8 stars 2 forks source link

やる気システムのAIロジックの変更 #5

Closed kanon511 closed 2 months ago

kanon511 commented 2 months ago

image このシミュレータを何度も使ううちに、私や多くのネチズンは、やる気システムで「セッションいて!」 そして「始まりの合図」は、生命力を消費する2枚のカードで、シミュレーターAIとゲーム内AIの操作が大きく異なり、ゲーム内AIは戦闘の終盤に使われる傾向が強く、結果的にシミュレーターのスコアが低くなっています(約5000ポイント低い)。 ご覧の通り、Calculator.jsのコードを変更して、ゲーム内のAI操作ロジックにより沿うようにしました。 if (type == 'block') { if (args[0] < 0) { if (status.remainTurn<2){ return 15 * args[0]; //重写 } return 15 * args[0] * status.remainTurn *status.remainTurn / 4; //重写 } return unitValue * args[0] * Math.sqrt(status.remainTurn+5) * 0.75; }

kanon511 commented 2 months ago

15は属性乗数であり、最悪の属性では「届いて!」そして「始まりの合図」が使用されないようにするために、二次関数を使用してこれら2枚のカードが最後の4ラウンドでのみ使用できるようにし、同時に、上記のif保証は、他の元気ダメージカードが同時に存在する場合に生命力を消費するダメージカードを使用しません。 (ゲーム内のネチズンが守るルール)

katabami83 commented 2 months ago

ありがとうございます。 やる気と元気の編成や「エンタメ」を入れた編成(特にデッキを圧縮した編成)で、実際とシミュレーションに大きく異なったスコア(それもシミュレーションの方が低い)が出ることが報告されています。

残り2ターンだけ元気消費の評価を下げるのはいい案だと思います。ただ、ゆくゆくは例外処理のない汎用的な評価でエミュレートしたいと思っています。 元気消費のマイナス評価を上げるのはいい案だと思います。if (status.remainTurn < 2)は最終ターンだけ他の元気ダメージカードより「届いて+」などを優先するということでしょうか。 私が心配なのは、これは元気の消費全てに関わる評価なので、例えばセンスで元気がある状態で「成就」があるときに、元気消費の影響で評価が大幅に下がらないかです。(何か試したわけではないです。)

また、実際の挙動では、たまに、次ターンの手札を予想するような動きがみられ、これは現在のところ実装できていないです。

ユーザーコミュニティで、「届いて+」を使った編成のスコアデータをいくつか貰ったので、少し検証させてください。


Thank you.

It has been reported that there is a significant difference in scores between actual gameplay and simulations, particularly with decks that use"やる気" and "元気" or those that use "エンタメ" (especially with compressed decks), with the simulation scores being lower.

lowering the evaluation of "元気" consumption for the last two turns is a good idea. However, in the long run, I would like to emulate using a more generalized evaluation without exception handling. I think increasing the negative evaluation of "元気" consumption is a good idea. Does if (status.remainTurn < 2) mean that in the final turn, "届いて+" and similar cards will be prioritized over other "元気" damage cards? What concerns me is that since this evaluation affects all "元気" consumption, it might significantly lower the evaluation in cases where, for example, there is "成就" is present with available "元気" due to the impact of "元気" consumption. (I haven't tested this, though.)

Additionally, in actual gameplay, there are occasional movements that seem to predict the next turn's hand, which I have not yet implemented.

I've received some score data from the user community for deck using "届いて+", so please allow me some time to verify this.

katabami83 commented 2 months ago

いくつかの編成で確認しました。「届いて+」の暴発を抑制することで、ほとんどの編成で実際と-6000ぐらいの差があったのが、±2000ぐらいの差になりました。ありがたく提案を受け入れます。

I've checked several decks. By suppressing the premature activation of "届いて+," the difference between the actual scores and the simulation, which was around -6000, has been reduced to about ±2000 in most cases. I gratefully accept your suggestion.

The table below shows the differences between the actual values and the simulation values for decks using "届いて+."

No. Mean (Before) Median (Before) Mean (After) Median (After) Idol
1 -6524 -7375 282 702 [アイドル、はじめっ!] 花海佑芽
2 -5214 -5844 1934 1788 [アイドル、はじめっ!] 花海佑芽
3 -7064 -6306 -441 1437 [アイドル、はじめっ!] 花海佑芽
4 -775 -1623 3032 2753 [キミとセミブルー] 紫雲清夏
5 -5295 -5039 572 1781 [アイドル、はじめっ!] 花海佑芽
6 -2390 -2079 1303 2510 [冠菊] 藤田ことね
7 -7258 -7550 -1281 -923 [アイドル、はじめっ!] 花海佑芽
8 -6879 -7813 426 532 [アイドル、はじめっ!] 花海佑芽
9 -6511 -7464 -214 -182 [アイドル、はじめっ!] 花海佑芽
10 -5790 -6997 -484 -336 [Wonder Scale] 倉本千奈
kanon511 commented 2 months ago

ありがとうございます。 やる気と元気の編成や「エンタメ」を入れた編成(特にデッキを圧縮した編成)で、実際とシミュレーションに大きく異なったスコア(それもシミュレーションの方が低い)が出ることが報告されています。

~残り2ターンだけ元気消費の評価を下げるのはいい案だと思います。ただ、ゆくゆくは例外処理のない汎用的な評価でエミュレートしたいと思っています。~ 元気消費のマイナス評価を上げるのはいい案だと思います。if (status.remainTurn < 2)は最終ターンだけ他の元気ダメージカードより「届いて+」などを優先するということでしょうか。 私が心配なのは、これは元気の消費全てに関わる評価なので、例えばセンスで元気がある状態で「成就」があるときに、元気消費の影響で評価が大幅に下がらないかです。(何か試したわけではないです。)

また、実際の挙動では、たまに、次ターンの手札を予想するような動きがみられ、これは現在のところ実装できていないです。

ユーザーコミュニティで、「届いて+」を使った編成のスコアデータをいくつか貰ったので、少し検証させてください。

Thank you.

It has been reported that there is a significant difference in scores between actual gameplay and simulations, particularly with decks that use"やる気" and "元気" or those that use "エンタメ" (especially with compressed decks), with the simulation scores being lower.

~lowering the evaluation of "元気" consumption for the last two turns is a good idea. However, in the long run, I would like to emulate using a more generalized evaluation without exception handling.~ I think increasing the negative evaluation of "元気" consumption is a good idea. Does if (status.remainTurn < 2) mean that in the final turn, "届いて+" and similar cards will be prioritized over other "元気" damage cards? What concerns me is that since this evaluation affects all "元気" consumption, it might significantly lower the evaluation in cases where, for example, there is "成就" is present with available "元気" due to the impact of "元気" consumption. (I haven't tested this, though.)

Additionally, in actual gameplay, there are occasional movements that seem to predict the next turn's hand, which I have not yet implemented.

I've received some score data from the user community for deck using "届いて+", so please allow me some time to verify this.

ロジックでのカードの通常の使用は 'cost: { type: 'hp', value: -5 }' と 'cost: { type: 'direct_hp', value: -5 }' であり、やる気システムでのみ元気の消費が表示されますが、当面の間、ゲーム公式はメタバース システム外の元気消費の外には現れません、メやる気システムでは、元気の消費はリソースの使用と同等であり、後の元気の消費に合理的に割り当てられます。 ゲーム内のAIのロジックにより沿うものになります。

The normal use of cards in the logic is 'cost: { type: 'hp', value: -5 }' and 'cost: { type: 'direct_hp', value: -5 }', only in the やる気 system there will be a consumption of 元気, for the time being, the game official will not appear outside the やる気 system of the consumption of 元気, in the やる気 system, the consumption of 元気 is equivalent to a use of resources, reasonable allocation to the later consumption of 元気, It will be more in line with the logic of the AI in the game.