ट्रैक
/
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.")

इस टेस्ट को पास कराने के लिए आपको यह सुनिश्चित करना होगा कि रोबोट का नाम पहले इस्तेमाल नहीं किया गया है और नाम कुशलता से आवंटित किए जा सकें।


स्रोत

gSchool में Paul Blackwell के साथ एक डीबगिंग सेशन।
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Go Exercism

रोबोट का नाम शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।