أنت تعمل في شركة تطوّر لعبة جماعية عبر الإنترنت تُدعى Lexiconia.
لخوض اللعبة، يُمنح كل لاعب 13 حرفًا، عليه أن يعيد ترتيبها لتكوين كلمات. ولكل حرف قيمة نقاط مختلفة، لأن تكوين الكلمات ببعض الأحرف أسهل من غيرها.
صدرت اللعبة في البداية باللغة الإنجليزية، لكنها لاقت شعبية كبيرة، والآن تريد الشركة التوسّع إلى لغات أخرى أيضًا.
تحتاج كل لغة إلى دعم قيم نقاط مختلفة للأحرف، وتُحدَّد قيم النقاط بحسب مدى شيوع استخدام الحرف مقارنة ببقية أحرف تلك اللغة.
على سبيل المثال، الحرف 'C' شائع جدًا في الإنجليزية، وقيمته 3 نقاط فقط. أما في النرويجية فهو حرف نادر جدًا، وقيمته 10 نقاط.
ولتسهيل إضافة لغات جديدة، يحتاج فريقك إلى تغيير طريقة تخزين الأحرف وقيم نقاطها في اللعبة.
مهمتك هي تغيير صيغة البيانات الخاصة بالحروف وقيمها النقطية في اللعبة.
حاليًا، تُخزَّن الحروف في مجموعات بناءً على نقاطها، وذلك في علاقة واحد إلى متعدد.
يجب تغيير هذا بحيث يُخزَّن كل حرف على حدة مع نقاطه في علاقة واحد إلى واحد.
وكجزء من هذا التغيير، قرر الفريق أيضًا تحويل الحروف إلى أحرف صغيرة بدلًا من الكبيرة.
إذا أردت أن ترى كيف كانت البيانات مهيكلة سابقًا وكيف يجب أن تتغير، فألقِ نظرة على الأمثلة في مجموعة الاختبارات.
سجّل في Exercism لتتعلّم وتتقن R عبر 21 مفهومًا111 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.