पृष्ठभूमि
ASCII कला आकृतियाँ बनाने के लिए ASCII पाठ का उपयोग करके चित्र बनाने का अभ्यास है।
एलियासिंग ASCII कला के बड़े "पिक्सल" द्वारा बनाया गया प्रभाव है, जो वर्णों का आकार है। छवि देखने में अवरुद्ध और कठिन हो जाती है। एंटी-अलियासिंग एक ढाल बनाकर और ASCII कला के कठिन किनारों को नरम करके इस प्रभाव को हटा देता है।
चुनौती
आपकी चुनौती सबसे छोटे कार्यक्रम को लिखना संभव है जो एएससीआईआई कला का एक टुकड़ा लेगा और एक ऐसे संस्करण का उत्पादन करेगा जो अल्टरनेटिव किया गया है।
किस तरह का विरोधी अलियासिंग?
सभी ASCII कला में दो प्रकार के प्रतीक शामिल होंगे: रिक्त स्थान और गैर-व्हाट्सएप। प्रत्येक गैर-व्हाट्सएप चरित्र के लिए, आपके कार्यक्रम को यह निर्धारित करना चाहिए कि क्या यह उस स्थिति में है, जहां उसे अलियास होने की आवश्यकता है। यदि यह है, तो आपको इसे सही चरित्र के साथ बदलने की आवश्यकता है। यदि ऐसा नहीं है, तो चरित्र वही रहता है।
आपको कैसे पता चलेगा कि किसी किरदार को अलियास होने की जरूरत है? इसका उत्तर वर्णों पर निर्भर करता है जो वर्ण के ठीक ऊपर, नीचे, बाएँ और दाएँ होते हैं ( विकर्ण नहीं )। यहाँ जब विरोधी aliasing की आवश्यकता है, का एक चार्ट जहां है ?
और x
किसी भी गैर-सफ़ेद चरित्र के लिए खड़े हो सकते हैं।
x? -> d?
? ?
?x -> ?b
? ?
? ?
?x -> ?F
? ?
x? -> Y?
x -> ; Note: This character has been changed from _ to ;
? ?
? ?
x -> V
?x -> ?>
x? -> <?
x -> @
इनपुट (और उदाहरण पूर्व विरोधी एलिसिंग ASCII कला)
सबसे पहले, इनपुट की दो लाइनें होंगी (STDIN के लिए), एक नंबर H के बाद एक नंबर W होगा। उसके बाद प्रत्येक W अक्षर के H अक्षर होंगे (प्रत्येक नई लाइन को छोड़कर)। ये निम्नलिखित पंक्तियाँ ASCII कला होंगी जिन्हें अलियास-विरोधी होने की आवश्यकता है। यहाँ एक उदाहरण इनपुट है (सुंदर नहीं, लेकिन एक परीक्षण):
7
9
888888
888888
999 98 7
666666
666666
6666
6
आउटपुट (और विरोधी अलियास कला का उदाहरण)
आपका कार्यक्रम ASCII कला (समान आयामों) के STDOUT में आउटपुट होना चाहिए, जो कि एंटी-अलियास किया गया है। यहाँ उपरोक्त इनपुट के लिए आउटपुट है। ध्यान दें कि बॉर्डर कैरेक्टर्स को बॉर्डरिंग व्हाट्सएप कैसे माना जाता है।
d8888>
d8888F
<99 98 @
Y6666b
Y6666>
Y66F
V
यह अच्छा नहीं लग सकता है (कोड ब्लॉक में लाइनों के बीच की जगह के कारण), यह बड़े ASCII कला के साथ बेहतर दिखता है, और उपयोग किए गए सटीक फ़ॉन्ट पर गुणवत्ता निर्भर करती है।
एक और उदाहरण
इनपुट
12
18
xx xxx xxx
xxxx xxx xxx
xxxxxx xxx xxx
xxx xxx xxx xxx
xxxx xxx xxx xxx
xxxxxx xxx xxx
xxxx xxx xxx
x xx xxx xxx x
xx xxx xxx xx
xxx xxx xxx xxx
xxxx xxx xxx xx
xxxxx xxx xxx x
उत्पादन
db <xb <xb
dxxb Yxb Yxb
dxxxxb Yxb Yxb
dxx xxb xxb xxb
Yxxb xxF xxF xxF
YxxxxF dxF dxF
YxxF dxF dxF
; YF dxF dxF ;
xb dxF dxF dx
xxb <xF <xF <xx
xxxb Yxb Yxb Yx
Yxxx> Yx> Yx> V
नियम, प्रतिबंध और नोट्स
आपका प्रोग्राम केवल मुद्रण योग्य ASCII वर्णों में लिखा जाना चाहिए, ताकि हम कार्यक्रमों से कला बना सकें। इसके अलावा, मानक कोड-गोल्फ नियम लागू होते हैं।
_
बन गया है;
क्योंकि यह बेहतर काम करता है।