شما در حال راهاندازی یک باشگاه کدنویسی مخفی با چند دوست و دوستانی از دوستانشان هستید. همه یکدیگر را نمیشناسند، بنابراین شما و دوستانتان تصمیم گرفتهاید یک دستدادن مخفی طراحی کنید که با آن بتوانید تشخیص دهید کسی عضو باشگاه است. نمیخواهید کسی که از ماجرا بیخبر است بتواند رمز را بشکند.
رمز را طوری طراحی کردهاید که یک نفر عددی بین ۱ تا ۳۱ میگوید و نفر دیگر آن را به مجموعهای از حرکات تبدیل میکند.
وظیفهی شما این است که عددی بین ۱ و ۳۱ را به دنبالهای از کارها در دستدادن مخفی تبدیل کنید.
دنبالهی کارها با نگاه کردن به پنج رقم سمت راست عدد، پس از تبدیل آن به مبنای دو، انتخاب میشود. از راستترین رقم شروع کنید و به سمت چپ حرکت کنید.
کارهای مربوط به هر مرتبه از عدد عبارتاند از:
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 رخ نمیدهد.jump انجام میدهید.این آخرین رقم بود، پس کد نهایی چنین است:
wink, jump
با در نظر گرفتن عدد ۲۶ که در مبنای دو 11010 است، کارهای زیر را به دست میآوریم:
double blinkjumpبنابراین دستدادن مخفی برای ۲۶ چنین است:
jump, double blink
اگر مطمئن نیستید مبنای دو چیست یا چگونه کار میکند، [این آموزش مبنای دو][intro-to-binary] را ببینید. [intro-to-binary]: https://medium.com/basecs/bits-bytes-building-with-binary-13cb4289aafa
در Exercism ثبتنام کنید تا Delphi Pascal را همراه با 76 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.