تنظیمات کارخانهی ربات را مدیریت کنید.
وقتی ربات از خط تولید کارخانه بیرون میآید، هیچ اسمی ندارد.
اولین باری که رباتی را روشن میکنید، یک اسم تصادفی به این شکل تولید میشود: دو حرف بزرگ و بعد سه رقم، مثل RX837 یا BC811.
هر چند وقت یکبار لازم است رباتی را به تنظیمات کارخانهاش برگردانیم، یعنی اسمش پاک میشود. دفعهی بعدی که بپرسید، آن ربات با یک اسم تصادفی تازه پاسخ میدهد.
اسمها باید تصادفی باشند: نباید از یک ترتیب قابل پیشبینی پیروی کنند. استفاده از اسمهای تصادفی با خطر تداخل همراه است. راهحل شما باید مطمئن شود که هر ربات موجود اسمی یکتا دارد.
ممکن است اسمهای ربات تمام شود؛ وقتی همهی اسمهای ممکن ربات تخصیص داده شد، باید یک خطا برگردانده شود.
وقتی go test را با موفقیت اجرا کردید، میبینید که در مجموعهی Test، یک Test با اسم TestCollisions وجود دارد که بهطور پیشفرض نادیده گرفته میشود، چون ممکن است زمان زیادی طول بکشد.
این Test رباتهای جدید میسازد تا زمانی که دیگر نتوان اسم تازهای به ربات تخصیص داد.
برای اینکه Test اجرا شود، این خط را حذف کنید:
t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")
برای اینکه این Test موفق شود، باید مطمئن شوید که اسم ربات پیشتر استفاده نشده است و اینکه میتوان اسمها را بهشکل کارآمدی تخصیص داد.