オンラインのファンタジーサバイバルゲームを作っている会社で働いています。
プレイヤーがレベルをクリアすると、エネルギーポイントが与えられます。 与えられるエネルギーの量は、そのレベルを探索しているときにプレイヤーが見つけた魔法のアイテムによって変わります。
プレイヤーがレベルをクリアしたときに与えられるエネルギーポイントを計算するコードを書いてください。
与えられるポイントは、次の2つのことで決まります:
エネルギーポイントは、次のルールに従って与えられます:
例を見てみましょう:
プレイヤーはレベル20をクリアし、基本値が3と5の2つの魔法のアイテムを見つけました。
このプレイヤーが獲得するエネルギーポイントを計算するには、これらの基本値の倍数のうち、レベル20より小さく、重複しないものをすべて求めます。
{3, 6, 9, 12, 15, 18}
{5, 10, 15}
{3, 5, 6, 9, 10, 12, 15, 18}
3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
この演習のポイントは、数値の範囲を繰り返し処理する方法と、Collectionの中に、ある数で割り切れる倍数があるかどうかを調べる方法を理解することです。
Spotterを使って、候補となるクラスを調べたり、そのクラスにあるメソッドのカテゴリーを見て回ったりしてみましょう。
また、Pharoの環境は、相互参照が非常に充実していることも覚えておきましょう。 どのクラスやメソッドも右クリックして、クラスの「references」(どのように作られるかを確認できます)や、メソッドの「senders」(どのように使われるかを確認できます)をたどることができます。