एक रोबोट सिम्युलेटर लिखिए।
रोबोट बनाने वाले एक कारखाने के परीक्षण केंद्र को एक ऐसा प्रोग्राम चाहिए जो रोबोट की गतियों की जाँच करे।
रोबोट तीन तरह की गतियाँ कर सकते हैं:
रोबोट को एक काल्पनिक अनंत ग्रिड पर रखा जाता है। हर रोबोट का कोई {x,y} निर्देशांक होता है, जैसे {3,8}, और उसका मुँह किसी एक दिशा (north, east, south या west) की ओर होता है। इस ग्रिड में निर्देशांक north और east की ओर बढ़ते हैं।
इसके बाद रोबोट को कई निर्देश मिलते हैं। तब परीक्षण केंद्र जाँचता है कि रोबोट की नई स्थिति क्या है और उसका मुँह किस दिशा की ओर है।
इस अभ्यास में आपने देखा होगा कि स्टब में getX() जैसे गेटर बनाए गए हैं, लेकिन टेस्ट वैल्यू को सीधे .x की तरह पढ़ते हैं। ऐसा इसलिए होता है क्योंकि Groovy प्रॉपर्टी को इसी तरह परिभाषित करता है। चलिए इसे अलग-अलग हिस्सों में समझते हैं:
Groovy की प्रॉपर्टी के बारे में मुख्य बातें:
final चिह्नित किया गया हो)।इस अभ्यास में हमने सिर्फ ज़रूरी गेटर दिए हैं (और ऊपर बताए अनुसार प्रॉपर्टी भी उन्हीं से बनती हैं), ताकि हल सही तरीके से लिखा जाए। अपने हल के लिए कौन-सी फील्ड और उनके कौन-से टाइप सबसे उपयुक्त हैं, यह तय करने की छूट आपको है।
अगर आप फील्ड और प्रॉपर्टी के बारे में और गहराई से जानना चाहते हैं, तो Groovy के डॉक्यूमेंटेशन में अध्याय 3.3. फील्ड और प्रॉपर्टी देखिए।