المسارات
/
WebAssembly
WebAssembly
/
التمارين
/
محاكي الروبوت
محاكي الروبوت

محاكي الروبوت

متوسط

التعليمات

اكتب محاكي روبوت.

يحتاج مرفق اختبار في مصنع للروبوتات إلى برنامج للتحقق من حركات الروبوت.

للروبوتات ثلاث حركات ممكنة:

  • الاستدارة يمينًا
  • الاستدارة يسارًا
  • التقدّم

توضع الروبوتات على شبكة افتراضية لا نهائية، وهي متجهة نحو اتجاه معين (الشمال أو الشرق أو الجنوب أو الغرب) عند مجموعة من الإحداثيات {x,y}، مثل {3,8}، حيث تزداد الإحداثيات نحو الشمال والشرق.

ثم يتلقى الروبوت عددًا من التعليمات، وعندها يتحقق مرفق الاختبار من موضع الروبوت الجديد، ومن الاتجاه الذي يشير إليه.

  • تعني السلسلة النصية المكوّنة من الحروف "RAALAL" ما يلي:
    • الاستدارة يمينًا
    • التقدّم مرتين
    • الاستدارة يسارًا
    • التقدّم مرة واحدة
    • الاستدارة يسارًا مرة أخرى
  • لنفترض أن روبوتًا يبدأ عند {7, 3} متجهًا نحو الشمال. عند تشغيل هذه التعليمات بالترتيب سيصبح عند {9, 4} متجهًا نحو الغرب.

سيُعبَّر عن الاتجاه الذي يواجهه الروبوت بأحد الأعداد التالية:

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

عندما تكون المدخلات غير صالحة، أرجِع اتجاهًا يساوي -1 (سيتم تجاهل القيم الأخرى).

الذاكرة المحجوزة

يستخدم المخزن المؤقت الخاص بالسلسلة النصية المُدخلة البايتات 64-319 من الذاكرة الخطية.

يمكن تعديل السلسلة النصية المُدخلة إذا أردت ذلك.


المصدر

مستوحًى من سؤال مقابلة في شركة شهيرة.
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
WebAssembly Exercism

مستعد لبدء محاكي الروبوت؟

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