أدِر إعدادات مصنع الروبوتات.
عندما يخرج روبوت من المصنع، لا يكون له اسم.
في المرة الأولى التي تشغّل فيها روبوتًا، يُولَّد له اسم عشوائي بصيغة حرفين كبيرين يتلوهما ثلاثة أرقام، مثل RX837 أو BC811.
بين الحين والآخر نحتاج إلى إعادة ضبط روبوت على إعدادات المصنع، ما يعني محو اسمه. وفي المرة التالية التي تسأل فيها، سيستجيب ذلك الروبوت باسم عشوائي جديد.
يجب أن تكون الأسماء عشوائية: فلا يجوز أن تتبع تسلسلًا يمكن التنبؤ به. واستخدام الأسماء العشوائية يحمل خطر التصادم. يجب أن يضمن حلك أن يكون لكل روبوت موجود اسم فريد.
قد تنفد أسماء الروبوتات، فبمجرد أن تُخصَّص كل أسماء الروبوتات الممكنة ينبغي إرجاع خطأ.
بمجرد أن ينجح go test، ستجد في مجموعة الاختبارات اختبارًا اسمه TestCollisions يُتخطّى افتراضيًا لأنه قد يستغرق وقتًا طويلًا.
ينشئ هذا الاختبار روبوتات جديدة حتى لا يعود بالإمكان تخصيص أسماء جديدة للروبوت.
لتشغيل الاختبار، احذف هذا السطر:
t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")
لينجح هذا الاختبار، عليك أن تتأكد من أن اسم الروبوت لم يُستخدم من قبل، ومن إمكانية تخصيص الأسماء بكفاءة.
سجّل في Exercism لتتعلّم وتتقن Go عبر 34 مفهومًا165 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.