ETL

ETL

سهل

مقدمة

أنت تعمل في شركة تطوّر لعبة جماعية عبر الإنترنت تُدعى Lexiconia.

لخوض اللعبة، يُمنح كل لاعب 13 حرفًا، عليه أن يعيد ترتيبها لتكوين كلمات. ولكل حرف قيمة نقاط مختلفة، لأن تكوين الكلمات ببعض الأحرف أسهل من غيرها.

صدرت اللعبة في البداية باللغة الإنجليزية، لكنها لاقت شعبية كبيرة، والآن تريد الشركة التوسّع إلى لغات أخرى أيضًا.

تحتاج كل لغة إلى دعم قيم نقاط مختلفة للأحرف، وتُحدَّد قيم النقاط بحسب مدى شيوع استخدام الحرف مقارنة ببقية أحرف تلك اللغة.

على سبيل المثال، الحرف 'C' شائع جدًا في الإنجليزية، وقيمته 3 نقاط فقط. أما في النرويجية فهو حرف نادر جدًا، وقيمته 10 نقاط.

ولتسهيل إضافة لغات جديدة، يحتاج فريقك إلى تغيير طريقة تخزين الأحرف وقيم نقاطها في اللعبة.

التعليمات

مهمتك هي تغيير صيغة البيانات الخاصة بالحروف وقيمها النقطية في اللعبة.

حاليًا، تُخزَّن الحروف في مجموعات بناءً على نقاطها، وذلك في علاقة واحد إلى متعدد.

  • 1 نقطة: "A"، "E"، "I"، "O"، "U"، "L"، "N"، "R"، "S"، "T"،
  • 2 نقطة: "D"، "G"،
  • 3 نقاط: "B"، "C"، "M"، "P"،
  • 4 نقاط: "F"، "H"، "V"، "W"، "Y"،
  • 5 نقاط: "K"،
  • 8 نقاط: "J"، "X"،
  • 10 نقاط: "Q"، "Z"،

يجب تغيير هذا بحيث يُخزَّن كل حرف على حدة مع نقاطه في علاقة واحد إلى واحد.

  • الحرف "a" قيمته 1 نقطة.
  • الحرف "b" قيمته 3 نقاط.
  • الحرف "c" قيمته 3 نقاط.
  • الحرف "d" قيمته 2 نقطة.
  • وهكذا.

وكجزء من هذا التغيير، قرر الفريق أيضًا تحويل الحروف إلى أحرف صغيرة بدلًا من الكبيرة.

Note

إذا أردت أن ترى كيف كانت البيانات مهيكلة سابقًا وكيف يجب أن تتغير، فألقِ نظرة على الأمثلة في مجموعة الاختبارات.

التعليمات

تُختبر العناصر في مصفوفة الإخراج بترتيب تصاعدي للمفتاح.

لاحظ أن الـ structين يحملان عناصر بأحجام مختلفة، لذا فإن المحاذاة عامل يجب أخذه في الحسبان.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
x86-64 Assembly Exercism

مستعد لبدء ETL؟

سجّل في Exercism لتتعلّم وتتقن x86-64 Assembly عبر 22 مفهومًا130 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.