مسیرها
/
Julia
Julia
/
تمرین‌ها
/
دست‌دادن مخفی
دست‌دادن مخفی

دست‌دادن مخفی

آسان

مقدمه

شما در حال راه‌اندازی یک باشگاه کدنویسی مخفی با چند دوست و دوستانی از دوستانشان هستید. همه یکدیگر را نمی‌شناسند، بنابراین شما و دوستانتان تصمیم گرفته‌اید یک دست‌دادن مخفی طراحی کنید که با آن بتوانید تشخیص دهید کسی عضو باشگاه است. نمی‌خواهید کسی که از ماجرا بی‌خبر است بتواند رمز را بشکند.

رمز را طوری طراحی کرده‌اید که یک نفر عددی بین ۱ تا ۳۱ می‌گوید و نفر دیگر آن را به مجموعه‌ای از حرکات تبدیل می‌کند.

دستورالعمل‌ها

وظیفه‌ی شما این است که عددی بین ۱ و ۳۱ را به دنباله‌ای از کارها در دست‌دادن مخفی تبدیل کنید.

دنباله‌ی کارها با نگاه کردن به پنج رقم سمت راستِ عدد، پس از تبدیل آن به مبنای دو، انتخاب می‌شود. از رقم سمت راست شروع کنید و به سمت چپ بروید.

کارهای مربوط به هر جایگاه عددی عبارت‌اند از:

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

بیایید عدد 9 را به عنوان مثال در نظر بگیریم:

  • ۹ در مبنای دو برابر 1001 است.
  • رقمی که در سمت راست‌ترین جایگاه قرار دارد ۱ است، پس اولین کار wink است.
  • با رفتن به سمت چپ، رقم بعدی ۰ است، پس double blink انجام نمی‌شود.
  • باز هم به سمت چپ می‌رویم، رقم بعدی ۰ است، پس چشمان‌تان را باز نگه می‌دارید.
  • باز هم به سمت چپ می‌رویم، رقم بعدی ۱ است، پس می‌پرید.

این آخرین رقم بود، پس کد نهایی این است:

wink, jump

اگر عدد ۲۶ را در نظر بگیریم، که در مبنای دو 11010 است، کارهای زیر به دست می‌آیند:

  • double blink
  • jump
  • معکوس کردن کارها

بنابراین دست‌دادن مخفی برای ۲۶ این است:

jump, double blink
Note

اگر مطمئن نیستید مبنای دو چیست یا چگونه کار می‌کند، این آموزش مبنای دو را ببینید.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Julia Exercism

آماده‌اید دست‌دادن مخفی را شروع کنید؟

در Exercism ثبت‌نام کنید تا Julia را همراه با 35 مفهوم128 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.