प्रस्तावना
जैसा कि मैंने आज से पहले एक तीरंदाजी 900 राउंड की शूटिंग कर रहा था (10 छोरों पर 6 छोरों पर, और 10 छोरों पर 3 छोरों पर, कुल 90 तीरों के लिए और 900 के अधिकतम स्कोर के लिए), मैंने इस चुनौती के बारे में सोचा।
तीरंदाजी में (यह मानते हुए कि आप एक FITA आपूर्ति किए गए टारगेट फेस [जिस कागज़ का टुकड़ा आप पर शूट करते हैं] पर शूट कर रहे हैं), प्रत्येक एरो के लिए आप अधिकतम 10. स्कोर का दावा कर सकते हैं। टारगेट फेस में घटते व्यास के 10 या 11 रिंग होते हैं, एक दूसरे के अंदर नेस्टेड। इनर रिंग के बाहर की ओर से, इन्हें 10 बिंदुओं से एक बिंदु तक गिना जाता है (और 11 रिंगों के मामले में, एक माध्यमिक अंतरतम रिंग है जो 'X' के रूप में गिना जाता है, जिसका स्कोर 10 है लेकिन टाई ब्रेकिंग मामलों के रूप में उपयोग किया जाता है उच्च मूल्य)। का निरीक्षण करें:
बेशक, मैं FITA मीट्रिक स्कोरिंग की बात कर रहा हूं, जैसा कि ऊपर चित्रण में देखा गया है। यदि आप बारीकी से देखते हैं, तो आप अंतरतम रिंग का निरीक्षण कर सकते हैं, जो एक फीकी बिंदीदार रेखा है, जिसका स्कोर चिह्नित नहीं है। यह वह 'एक्स' है जिसका मैं उल्लेख कर रहा था, लेकिन आपको बोनस के लिए प्रतिस्पर्धा करने तक उस पर ध्यान नहीं देना होगा।
चुनौती
एक फ़ंक्शन (या पूर्ण प्रोग्राम बनाएं, यदि भाषा फ़ंक्शन का समर्थन नहीं करती है), जो इनपुट के रूप में एक पूरी तरह से वर्ग छवि प्राप्त करता है (या छवि फ़ाइल नाम, यदि आवश्यक हो), कुछ संख्या में हरे (HEX # 00FF00, RGB (0) 255, 0)) कुछ आकार के डॉट्स, और स्कोर लौटाता है। छवि में हरे बिंदुओं के अलावा डेटा हो सकता है , लेकिन हरा हमेशा एक ही छाया होगा।
आप कल्पना कर सकते हैं कि चौकोर छवि लक्ष्य के चेहरे को दर्शाती है, जिसमें सबसे बाहरी रिंग 4 बिंदुओं (टॉप सेंटर, बॉटम सेंटर, राइट सेंटर, लेफ्ट सेंटर) को छूती है। निरूपित लक्ष्य चेहरा हमेशा उसी अनुपात का होगा, जिसके सभी छल्लों में इनपुट लक्ष्य छवि की चौड़ाई 1/20 की चौड़ाई होगी। एक उदाहरण के रूप में, इनपुट आयामों की एक छवि को 400px द्वारा 400px दिया गया है, तो आप मान सकते हैं कि प्रत्येक अंगूठी में 20px की आंतरिक चौड़ाई है, जैसा कि नीचे सचित्र है:
स्पष्टीकरण
- यदि दो अलग-अलग रिंगों को छूते हैं, तो दो रिंगों में से उच्च को गिना जाता है
- जब तक बोनस के लिए प्रयास न किया जाए, आपको स्वचालित रूप से मिसेस या 'x' केस के लिए खाता नहीं बनाना होगा
- आप मान सकते हैं कि कोई भी हरा वृत्त अतिव्यापी नहीं है
- आप यह भी मान सकते हैं कि हरे रंग की उस छाया का कोई अन्य पिक्सेल छवि में नहीं है
- छवि या तो PNG, JPEG या PPM प्रारूप (आपकी पसंद) में होगी
- बाहरी छवि प्रसंस्करण पुस्तकालयों की अनुमति है, अगर इस प्रश्न के पोस्टिंग से पहले लेखक
- आप मान सकते हैं कि एक लक्ष्य पर सभी हरे वृत्त एक ही व्यास के होंगे
- यदि ओवरलैपिंग सर्कल बोनस के लिए शूटिंग (हाह), आप मान सकते हैं कि छवि में कम से कम एक सर्कल में एक और ओवरलैपिंग नहीं है
- मानक खामियों को अस्वीकार कर दिया जाता है
परीक्षण के मामलों
निम्नलिखित दो मामलों में प्रत्येक अंक 52 होना चाहिए (या बोनस के मामले में, 52 1 'x' और 1 मिस के साथ):
और यह अंतिम परीक्षण मामला 25 स्कोर करना चाहिए :
बक्शीश
- -25 बाइट्स यदि आप मिस (किसी भी रिंग के बाहर) की संख्या को भी वापस कर देते हैं
- -30 बाइट्स यदि आप Xs की राशि लौटाते हैं (मान लें कि अंतरतम x छवि की चौड़ाई का 3/100 वां हिस्सा है, और 10 तो छवि की चौड़ाई का 2/100 वां हिस्सा है। 1-9 अनुपात अपरिवर्तित रहता है।
- -35% बाइट गिनती अगर आप अतिव्यापी हलकों के लिए खाते हैं
यह कोड गोल्फ है, इसलिए कम से कम बाइट्स जीतता है। मज़े करो!