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

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

متوسط

التعليمات

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

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

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

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

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

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

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

التنفيذ

يحتاج هذا التمرين فعلًا إلى نوع من الحالة العامة لروبوتك. ويمكن تحقيق ذلك في Erlang بطرق متعددة (بدءًا من الطريقة الأكثر التزامًا بأسلوب اللغة):

  1. استخدم إحدى وحدات gen_* من OTP
  2. اصنع عمليتك الخاصة، واستقبل الرسائل في حلقة، ومرّر الحالة كمعامل.
  3. اصنع عمليتك الخاصة، واستخدم قاموس العملية.

المصدر

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

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

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