Ми працюємо в компанії, яка створює онлайн-гру на виживання у фентезійному світі.
Коли гравець завершує рівень, він отримує бали енергії. Кількість нарахованої енергії залежить від того, які магічні предмети гравець знайшов, досліджуючи цей рівень.
Ваше завдання - написати код, який обчислює бали енергії, що їх отримують гравці за завершення рівня.
Нараховані бали залежать від двох чинників:
Бали енергії нараховують за такими правилами:
Розгляньмо приклад:
Гравець завершив рівень 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» методу (щоб побачити, як його можна використати).