गो के खेल में (जिसे baduk, igo, cờ vây और wéiqí भी कहते हैं) अंक तब मिलते हैं जब आप अपने पत्थरों से खाली प्रतिच्छेदों को पूरी तरह घेर लेते हैं। किसी खिलाड़ी के घिरे हुए प्रतिच्छेदों को उसका क्षेत्र कहा जाता है।
हर खिलाड़ी के क्षेत्र की गणना कीजिए। आप यह मान सकते हैं कि विरोधी के क्षेत्र में फँसे हुए पत्थर पहले ही बोर्ड से हटा दिए गए हैं।
यह निर्धारित कीजिए कि दिया गया निर्देशांक किस क्षेत्र में आता है।
एक साथ कई खाली प्रतिच्छेद घेरे जा सकते हैं, और घेरने के लिए केवल आड़े और खड़े पड़ोसी ही गिने जाते हैं। अगले चित्र में जो पत्थर मायने रखते हैं उन्हें "O" से दर्शाया गया है, और जो नहीं रखते उन्हें "I" (अनदेखा) से। खाली जगहें खाली प्रतिच्छेद दर्शाती हैं।
+----+
|IOOI|
|O O|
|O OI|
|IOI |
+----+
अधिक सटीक रूप से कहें तो, कोई खाली प्रतिच्छेद किसी खिलाड़ी के क्षेत्र का हिस्सा तब होता है जब उसके सारे पड़ोसी या तो उस खिलाड़ी के पत्थर हों, या ऐसे खाली प्रतिच्छेद हों जो उस खिलाड़ी के क्षेत्र का हिस्सा हैं।
अधिक जानकारी के लिए Wikipedia या Sensei's Library देखिए।
कभी-कभी एक्सेप्शन रेज़ करना ज़रूरी हो जाता है। ऐसा करते समय आपको हमेशा एक अर्थपूर्ण एरर संदेश देना चाहिए, जिससे पता चले कि एरर कहाँ से आई है। इससे आपका कोड पढ़ने में आसान रहता है और डीबग करने में काफी मदद मिलती है। जहाँ आपको पता हो कि एरर का स्रोत एक तय तरह का ही होगा, वहाँ आप बिल्ट-इन एरर टाइप में से कोई एक रेज़ करना चुन सकते हैं, पर संदेश तब भी अर्थपूर्ण होना चाहिए।
यह अभ्यास खास तौर पर चाहता है कि गलत निर्देशांक मिलने पर आप रेज़ स्टेटमेंट की मदद से ValueError को "फेंकें"। टेस्ट तभी पास होंगे जब आप exception को raise करें और उसके साथ एक संदेश भी दें।
ValueError को संदेश के साथ रेज़ करने के लिए, संदेश को exception टाइप के आर्गुमेंट के रूप में लिखिए:
# when the coordinates for the piece are invalid
raise ValueError('Invalid coordinate')
Exercism पर साइन अप कीजिए और Python को 17 कॉन्सेप्ट146 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।