اسم ربات

اسم ربات

متوسط

دستورالعمل‌ها

تنظیمات کارخانه‌ی ربات را مدیریت کنید.

وقتی ربات از خط تولید کارخانه بیرون می‌آید، هیچ اسمی ندارد.

اولین باری که رباتی را روشن می‌کنید، یک اسم تصادفی به این شکل تولید می‌شود: دو حرف بزرگ و بعد سه رقم، مثل RX837 یا BC811.

هر چند وقت یک‌بار لازم است رباتی را به تنظیمات کارخانه‌اش برگردانیم، یعنی اسمش پاک می‌شود. دفعه‌ی بعدی که بپرسید، آن ربات با یک اسم تصادفی تازه پاسخ می‌دهد.

اسم‌ها باید تصادفی باشند: نباید از یک ترتیب قابل پیش‌بینی پیروی کنند. استفاده از اسم‌های تصادفی با خطر تداخل همراه است. راه‌حل شما باید مطمئن شود که هر ربات موجود اسمی یکتا دارد.

پیاده‌سازی

ممکن است اسم‌های ربات تمام شود؛ وقتی همه‌ی اسم‌های ممکن ربات تخصیص داده شد، باید یک خطا برگردانده شود.

Test امتیاز

وقتی 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 موفق شود، باید مطمئن شوید که اسم ربات پیش‌تر استفاده نشده است و اینکه می‌توان اسم‌ها را به‌شکل کارآمدی تخصیص داد.


منبع

یک جلسه‌ی debug با Paul Blackwell در gSchool.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Go Exercism

آماده‌اید اسم ربات را شروع کنید؟

در Exercism ثبت‌نام کنید تا Go را همراه با 34 مفهوم165 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.