المسارات
/
Go
Go
/
التمارين
/
اسم الروبوت
اسم الروبوت

اسم الروبوت

متوسط

التعليمات

أدِر إعدادات مصنع الروبوتات.

عندما يخرج روبوت من المصنع، لا يكون له اسم.

في المرة الأولى التي تشغّل فيها روبوتًا، يُولَّد له اسم عشوائي بصيغة حرفين كبيرين يتلوهما ثلاثة أرقام، مثل RX837 أو BC811.

بين الحين والآخر نحتاج إلى إعادة ضبط روبوت على إعدادات المصنع، ما يعني محو اسمه. وفي المرة التالية التي تسأل فيها، سيستجيب ذلك الروبوت باسم عشوائي جديد.

يجب أن تكون الأسماء عشوائية: فلا يجوز أن تتبع تسلسلًا يمكن التنبؤ به. واستخدام الأسماء العشوائية يحمل خطر التصادم. يجب أن يضمن حلك أن يكون لكل روبوت موجود اسم فريد.

التنفيذ

قد تنفد أسماء الروبوتات، فبمجرد أن تُخصَّص كل أسماء الروبوتات الممكنة ينبغي إرجاع خطأ.

اختبار إضافي

بمجرد أن ينجح go test، ستجد في مجموعة الاختبارات اختبارًا اسمه TestCollisions يُتخطّى افتراضيًا لأنه قد يستغرق وقتًا طويلًا. ينشئ هذا الاختبار روبوتات جديدة حتى لا يعود بالإمكان تخصيص أسماء جديدة للروبوت.

لتشغيل الاختبار، احذف هذا السطر:

t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")

لينجح هذا الاختبار، عليك أن تتأكد من أن اسم الروبوت لم يُستخدم من قبل، ومن إمكانية تخصيص الأسماء بكفاءة.


المصدر

جلسة تصحيح أخطاء مع Paul Blackwell في gSchool.
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Go Exercism

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

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