مسیرها
/
Erlang
Erlang
/
تمرین‌ها
/
شبیه‌ساز ربات
شبیه‌ساز ربات

شبیه‌ساز ربات

متوسط

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

یک شبیه‌ساز ربات بنویسید.

مرکز آزمایش یک کارخانه‌ی ربات به برنامه‌ای نیاز دارد که حرکات ربات را بررسی کند.

ربات‌ها سه حرکت ممکن دارند:

  • چرخش به راست
  • چرخش به چپ
  • حرکت به جلو

ربات‌ها روی یک شبکه‌ی بی‌نهایت فرضی قرار می‌گیرند، رو به جهت خاصی (شمال، شرق، جنوب یا غرب)، در مجموعه‌ای از مختصات {x,y}، مثلاً {3,8}، که مختصات به سمت شمال و شرق افزایش می‌یابد.

سپس ربات تعدادی دستور دریافت می‌کند و در این مرحله، مرکز آزمایش موقعیت جدید ربات و جهتی را که رو به آن است بررسی می‌کند.

  • رشته‌ی حروف «RAALAL» یعنی:
    • چرخش به راست
    • دو بار حرکت به جلو
    • چرخش به چپ
    • یک بار حرکت به جلو
    • و باز هم چرخش به چپ
  • فرض کنید رباتی از {7, 3} و رو به شمال شروع می‌کند. در این صورت، اجرای این رشته دستورها باید آن را در {9, 4} و رو به غرب باقی بگذارد.

پیاده‌سازی

این تمرین واقعاً به نوعی وضعیت سراسری برای ربات شما نیاز دارد. در Erlang می‌توان این کار را به چند روش انجام داد (با شروع از روشی که با سبک زبان هم‌خوان‌تر است):

  1. از یکی از gen_*های OTP استفاده کنید
  2. خودتان یک فرایند بنویسید، در یک حلقه پیام دریافت کنید و وضعیت را به‌عنوان پارامتر با خود ببرید.
  3. خودتان یک فرایند بنویسید و از دیکشنری فرایند استفاده کنید.

منبع

با الهام از یک پرسش مصاحبه در شرکتی مشهور.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Erlang Exercism

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

در Exercism ثبت‌نام کنید تا Erlang را همراه با 85 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.