المسارات
/
Elixir
Elixir
/
التمارين
/
المصافحة السرية
المصافحة السرية

المصافحة السرية

سهل

مقدمة

أنت تؤسس نادي برمجة سريًا مع بعض أصدقائك وأصدقاء أصدقائك. لا يعرف الجميع بعضهم بعضًا، لذلك قررت أنت وأصدقاؤك إنشاء مصافحة سرية تستخدمونها للتعرف على أن شخصًا ما عضو في النادي. لا تريد أن يتمكن أي شخص غير مطّلع على السر من فك شفرة الكود.

لقد صممت الكود بحيث يقول أحد الأشخاص عددًا بين 1 و31، ويحوّله الشخص الآخر إلى متتالية من الحركات.

التعليمات

مهمتك هي تحويل عدد بين 1 و31 إلى تسلسل من الحركات في المصافحة السرية.

يُختار تسلسل الحركات بالنظر إلى الأرقام الخمسة الواقعة في أقصى يمين العدد بعد تحويله إلى النظام الثنائي. ابدأ من الرقم الأبعد إلى اليمين وتحرك نحو اليسار.

الحركات المقابلة لكل مرتبة عددية هي:

00001 = wink
00010 = double blink
00100 = close your eyes
01000 = jump
10000 = Reverse the order of the operations in the secret handshake.

لنستخدم العدد 9 كمثال:

  • العدد 9 في النظام الثنائي هو 1001.
  • الرقم الأبعد إلى اليمين هو 1، لذا تكون الحركة الأولى wink.
  • وبالانتقال نحو اليسار، يكون الرقم التالي 0، لذا لا توجد حركة double blink.
  • وبالانتقال نحو اليسار مجددًا، يكون الرقم التالي 0، فتبقى عيناك مفتوحتين.
  • وبالانتقال نحو اليسار مجددًا، يكون الرقم التالي 1، فتنفّذ الحركة jump.

كان ذلك آخر رقم، لذا يكون الكود النهائي:

wink, jump

إذا أخذنا العدد 26، وهو 11010 في النظام الثنائي، نحصل على الحركات التالية:

  • double blink
  • jump
  • عكس ترتيب الحركات

لذا تكون المصافحة السرية للعدد 26 هي:

jump, double blink
Note

إن لم تكن متأكدًا مما هو النظام الثنائي أو كيف يعمل، فراجع هذا الدرس حول النظام الثنائي.

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

مستعد لبدء المصافحة السرية؟

سجّل في Exercism لتتعلّم وتتقن Elixir عبر 58 مفهومًا168 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.