Egy olyan cégnél dolgozol, amely egy online fantasy túlélőjátékot fejleszt.
Amikor egy játékos befejez egy szintet, energiapontokat kap. A kapott energiapontok mennyisége attól függ, hogy a játékos milyen mágikus tárgyakat talált a szint felfedezése közben.
A feladatod, hogy megírd a kódot, amely kiszámítja, hány energiapont jár a játékosoknak egy szint teljesítéséért.
A járó pontok két dologtól függnek:
Az energiapontok a következő szabályok szerint járnak:
Nézzünk egy példát:
A játékos teljesítette a 20. szintet, és talált két mágikus tárgyat, amelyeknek az alapértéke 3 és 5 volt.
Ahhoz, hogy kiszámítsuk a játékos által szerzett energiapontokat, meg kell keresnünk ezen alapértékek összes egyedi többszörösét, amelyek kisebbek a 20-nál.
{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
Ebben a feladatban az a trükk, hogy megértsd, hogyan kell végigiterálni egy számtartományon, és hogyan kell megvizsgálni egy Collectiont, hogy tartalmaz-e olyan többszöröst, amely osztható egy számmal. Próbáld ki a Spottert, hogy megkeress lehetséges osztályokat, és böngészd át ezeknek az osztályoknak a metóduskategóriáit.
Arra is gondolj, hogy a Pharo környezet tele van kereszthivatkozásokkal. Bármelyik osztályra vagy metódusra jobb gombbal kattintva böngészheted egy osztály „references” listáját (hogy lásd, hogyan lehet létrehozni), illetve egy metódus „senders” listáját (hogy lásd, hogyan lehet használni).
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Pharo nyelvet 50 feladat segítségével, valódi emberi mentorálással, mindez ingyen.