تعمل في شركة تصنع لعبة بقاء خيالية على الإنترنت.
عندما يُنهي اللاعب مستوى ما، يُمنح نقاط طاقة. ويتوقف مقدار الطاقة الممنوحة على العناصر السحرية التي عثر عليها اللاعب أثناء استكشافه لذلك المستوى.
مهمتك هي كتابة الكود الذي يحسب نقاط الطاقة التي تُمنح للاعبين عند إكمالهم مستوى ما.
تعتمد النقاط الممنوحة على شيئين:
تُمنح نقاط الطاقة وفق القواعد التالية:
لنلقِ نظرة على مثال:
أكمل اللاعب المستوى 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" الخاصة بالطريقة (لترى كيف يمكن استخدامها).
سجّل في Exercism لتتعلّم وتتقن Pharo عبر 50 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.