कूरियर सीमेंट


13

कूरियर सीमेंट

प्रोग्राम को इनपुट के रूप में किसी भी स्ट्रिंग को स्वीकार करना चाहिए और एक पिक्सेल छवि को आउटपुट करना चाहिए जो कूरियर में इनपुट स्ट्रिंग को दिखाता है। सभी अक्षरों में एक 'होल' (जैसे abdegopqABDPQRआदि) होता है जो ब्लैक पिक्सल्स से घिरा होता है, उसे भी ब्लैक भरा जाना चाहिए।

इनपुट

प्रोग्राम को इनपुट के रूप में किसी भी ASCII स्ट्रिंग को स्वीकार करने में सक्षम होना चाहिए। इनपुट किसी भी तरह से आप चाहते हैं, जब तक कि प्रोग्राम कोड खुद को अलग इनपुट को स्वीकार करने के लिए बदलना नहीं पड़ता है। (उदाहरण के लिए, फ़ाइल का फ़ाइल नाम जो पढ़ा जाना है, को छोड़कर।) कोई मानक कमियां नहीं। आप मान सकते हैं कि प्रत्येक इनपुट में कम से कम एक मुद्रण योग्य पत्र शामिल है।

उत्पादन

आउटपुट एक काला और सफ़ेद (कोई ग्रे नहीं) पिक्सेल ग्राफिक होना चाहिए जो कि कोरियर (ब्लैक, बैकग्राउंड व्हाइट) में लिखे गए स्ट्रिंग को दर्शाता है, जिसमें निर्दिष्ट 'छेद' भरे हुए हैं। पूरे स्ट्रिंग का फॉन्टेज स्थिर होना चाहिए (इसका मतलब है कि प्रत्येक अलग-अलग अक्षरों के लिए कोई अलग स्केलिंग नहीं है) ताकि पूर्ण आकार के अक्षर (जैसे ABCDEFGHIJKLMNOPRSTUVWXYZलेकिन j और Q बड़े हों) की ऊंचाई कम से कम 10px होनी चाहिए। (आपको इसे किसी फ़ाइल में लिखने की ज़रूरत नहीं है, किसी भी प्रकार का प्रदर्शन ठीक है जब तक कि यह पिक्सेलग्रैफ़िक्स के रूप में उत्पन्न होता है, उदाहरण के लिए जावास्क्रिप्ट में कैनवास।) कृपया अपने उत्तर के साथ इस ग्राफिक को पोस्ट करें।

Courier.ttf / font पुस्तकालयों में प्रवेश की अनुमति है।

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

स्कोर

स्कोर का मूल्यांकन इस प्रकार किया जाता है: पूर्ण प्रोग्राम कोड का उपयोग आपके प्रोग्राम में इनपुट स्ट्रिंग के रूप में किया जाना चाहिए। ब्लैक पिक्सल्स की संख्या आपका स्कोर होगी। प्रोग्राम कोड जिसमें गैर-मुद्रण योग्य या गैर-एएससीआईआई पत्र शामिल हैं, की अनुमति नहीं है। (साथ ही मानक खामियां।) कम स्कोर बेहतर है।


आउटपुट को b / w के रूप में निर्दिष्ट किया गया है, इसलिए किसी भी ग्रे पिक्सेल की अनुमति नहीं है। और एन्कोडिंग के बारे में पूछने के लिए धन्यवाद, यह फ़ॉन्ट के कारण ASCII तक सीमित होने वाला है।
दोष

1
कम से कम दो गंभीर समस्याएं हैं जिनके स्पष्टीकरण की आवश्यकता है। सबसे पहले, यह स्पष्ट नहीं है कि क्या कार्यक्रम को एक कूरियर.ttf तक पहुंच और पुस्तकालयों को फ़ॉन्ट करने की अनुमति है जो इसका उपयोग कर सकते हैं। दूसरे, क्या आप गंभीरता से उन कार्यक्रमों को प्रतिबंधित करने का इरादा रखते हैं जिनमें गैर-एएससीआईआई अक्षर नहीं हैं?
पीटर टेलर

हां, Courier.ttf और फ़ॉन्ट लाइब्रेरी तक पहुंच की अनुमति है - यह अन्यथा समझ में नहीं आएगा, धन्यवाद। मैं ऐसी किसी भी प्रमुख भाषा के साथ नहीं आ पा रहा था जो गैर-एएससीआईआई पात्रों पर भरोसा करती हो - क्या आप ऐसी किसी भाषा को जानते हैं, जिसे गैर-एएससीआईआई अक्षरों की जरूरत है?
दोष

1
@flawr एपीएल। और मैथेमेटिका में आप यूनिकोड वर्णों का उपयोग करके कुछ चीजों को छोटा कर सकते हैं।
मार्टिन एंडर

क्या ImageMagick की अनुमति है?
डिजिटल ट्रामा

जवाबों:


12

गणितज्ञ, 4864 पिक्सेल

l = ImageData[Binarize[Rasterize[Style[j, FontSize -> 15]], .71]]
i = {{1, 1}}
While[Length[i] > 1 - 1,
 {r, c} = j = i[[1]]; l[[r, c]] = 2; i = i[[2 ;; -1]];
 If[FreeQ[i, {r, c} = J = j + #] && l[[r, c]] == 1, 
    i = i~Join~{J}] & /@
  {{1, 1 - 1}, {1 - 1, 1}, {-1, 1 - 1}, {1 - 1, -1}}
 ]
Image[l = l /. 1 -> 1 - 1 /. 2 -> 1]
Count[l, 1 - 1, {2}]

ये रही तस्वीर:

यहाँ छवि विवरण दर्ज करें

मैथेमेटिका में जब आप "प्रोग्राम" लिखते हैं तो आप सिर्फ एक स्निपेट लिखते हैं। तो यह इनपुट में संग्रहीत इनपुट की उम्मीद करता है jऔर आखिरी चीज यह छवि और गणना है। यह त्रुटियों का एक गुच्छा भी है, क्योंकि मैं सीमा पर जाँच नहीं करता l, लेकिन यह वैसे भी वांछित परिणाम पैदा करता है।

जहां %कहा जाता है कि अंतिम आउटपुट।

एल्गोरिथ्म के विचार के लिए जियोबिट्स का धन्यवाद। मैं एक अमान्य तीव्रता के साथ ऊपरी-बाएँ कोने से छवि को बाढ़-भर रहा हूं, फिर मैं सभी शेष सफेद पिक्सेल को काले पिक्सेल के साथ बदल देता हूं, और अमान्य वाले सफेद वाले।

ध्यान दें कि FreeQकार्यक्रम वास्तव में सही ढंग से काम करने के लिए चेक आवश्यक नहीं है, लेकिन समय की उचित मात्रा में इसे पूरा करने के लिए। अगर मैं इसे छोड़ देता, तो मैं वास्तव में लगभग 300 पिक्सेल कम स्कोर करता।


मतगणना कार्यक्रम का हिस्सा होना चाहिए! इसके अलावा यह एक अच्छा समाधान है, क्या आपने गणना की कि कौन से अक्षर (चर नाम के रूप में) पिक्सेल की कम से कम संख्या का उपयोग करते हैं?
दोष

@flawr हाँ :) (अब उन सभी के लिए) (एक सेकंड में गिनती को ठीक करना)
मार्टिन एंडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.