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

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

متوسط

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

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

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

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

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

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

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

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

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

  • شمال = 0
  • شرق = 1
  • جنوب = 2
  • غرب = 3

وقتی ورودی نامعتبر باشد، جهت -1 را برگردانید (سایر مقادیر نادیده گرفته می‌شوند).

حافظه‌ی رزرو‌شده

بافر مربوط به رشته‌ی ورودی از بایت‌های 64-319 حافظه‌ی خطی استفاده می‌کند.

در صورت تمایل می‌توان رشته‌ی ورودی را تغییر داد.


منبع

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

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

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