온라인 판타지 생존 게임을 만드는 회사에서 일하고 있어요.
플레이어가 레벨을 완료하면 에너지 포인트를 받아요. 받는 에너지의 양은 그 레벨을 탐험하면서 플레이어가 어떤 마법 아이템을 찾았는지에 따라 달라져요.
플레이어가 레벨을 완료했을 때 받는 에너지 포인트를 계산하는 코드를 작성하는 것이 이번 과제예요.
받는 포인트는 두 가지에 따라 달라요:
에너지 포인트는 다음 규칙에 따라 지급돼요:
예를 하나 살펴봐요:
플레이어가 레벨 20을 완료했고, 기본값이 3과 5인 마법 아이템 두 개를 찾았어요.
플레이어가 얻은 에너지 포인트를 계산하려면, 이 기본값들의 배수 중 레벨 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"(그 메서드가 어떻게 쓰이는지 볼 수 있어요)를 둘러볼 수 있어요.