Kurzusok
/
Pharo
Pharo
/
Feladatok
/
Többszörösök összege
Többszörösök összege

Többszörösök összege

Könnyű

Bevezetés

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.

Utasítások

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:

  • A játékos által teljesített szint (egy szám).
  • A játékos által a szint során összegyűjtött egyes mágikus tárgyak alapértéke.

Az energiapontok a következő szabályok szerint járnak:

  1. Minden mágikus tárgynál vedd az alapértékét, és keresd meg az összes olyan többszörösét, amely kisebb a szint számánál.
  2. Vond össze a számhalmazokat.
  3. Távolítsd el az ismétlődéseket.
  4. Számítsd ki a megmaradt számok összegét.

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.

  • A 3-nak a 20-nál kisebb többszörösei: {3, 6, 9, 12, 15, 18}
  • Az 5-nek a 20-nál kisebb többszörösei: {5, 10, 15}
  • Vond össze a halmazokat, és távolítsd el az ismétlődéseket: {3, 5, 6, 9, 10, 12, 15, 18}
  • Add össze az egyedi többszörösöket: 3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
  • Ezért a játékos 78 energiapontot szerez a 20. szint teljesítéséért, és azért, hogy megtalálta a két mágikus tárgyat, amelyeknek az alapértéke 3 és 5.

Megjegyzés

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).

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Pharo Exercism

Készen állsz elkezdeni a(z) Többszörösök összege feladatot?

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.