インセンティブは大事ですね。お金が絡むとコードを調べる気も起きます。
今回はイーサエモンのソースコードを読み解き、経験値について理解します。
関連記事:
経験値について自分で調べるまでに何となく知っていたことは、
1. 勝てば3倍
2. 自分よりも強い相手に勝つと美味い
といったことでした。
育成費用を考えるにあたり、
1. あるレベル到達までに必要な経験値はいくらか?
2. あるレベルでの獲得経験値はいくらか?
といったことが具体的に知りたくなったので、この記事を書くに至りました。
(これをうけて稼げるか考察した話は、こちらをどうぞ。)
ソースコード中で、あるレベル到達までに必要な経験値(以下、必要経験値)は
genLevelExp()という関数中に記述されています。
記述内容を理解して、数列の問題を解くと、あるレベル L までに必要な経験値は
以下のように表せます。
理由はコード中の計算は全て整数で行われるためです。
大体はこれで合っているのですが、正しくはコード通りの計算を行う必要があります。
それをやったのが こちら です。
進化やら卵やらの目安になりそうな30レベルまでには約20000 expが必要です。
さて、初めのほうにもらえる経験値なんて数十くらいですが、
これで本当に20000 expなんてたどり着けるのか、と心配になるわけです。
getGainExp()に記述されているコードを読むと、経験値もレベルに応じて上がっていくことがわかります。
同レベルくらいのバトルだと、負けた場合で大体次のような値になります。
(勝てば3倍です。)
これまた整数の扱いがあったり、いろいろな条件分岐があるので、
まとめて こちら の表にしました。
25レベルくらいになれば勝ちケースで100くらい稼げます。
まとめてみたら、改めて同レベル帯のモンスターをぶつける大切さを確認できました。
注: 2018年5/13のゲーム仕様変更により、レベル差の"壁"に変更がありました。具体的には
1から10レベル: 3
11から20レベル: 4
21から30レベル: 5
31から50レベル: 6
51から70レベル: 7
71から90レベル: 8
91から100レベル: 9
です。
詳細数値は英語記事より。
今回はイーサエモンのソースコードから経験値について理解しました。
と
という産物を得ることができました。
これからアドベンチャーモードの実装もあり、このデータがいつまで有用かは分かりませんが、各自イーサエモンの投資戦略にお役立てください。
著者 @kyoronut
↓この記事が気に入ったら、いいね か ethの投げ銭 お待ちしています。
0x2aa96Abe82892Ba645Eb73fe44793b2Adb0Cdc0D