बड़े होकर, मेरा पहला कंसोल गेम सिस्टम अटारी 2600 था और मैं हमेशा उन कुछ गेमों के लिए प्यार करता रहूंगा जिन्हें मैंने एक बच्चे के रूप में आनंद लिया। कई ग्राफिक्स अभी भी यादगार हैं, शायद प्रतिष्ठित भी।
यह पता चला है कि ये स्प्राइट्स बहुत ही सरल बिटमैप हैं, जो चर ऊंचाई के साथ 8 पिक्सेल चौड़े हैं जहाँ बाइनरी प्रतिनिधित्व पिक्सेल की व्यवस्था है।
उदाहरण के लिए, हेक्स बाइट्स 0x18, 0x24, 0x18 ऐसा क्रूड सर्कल खींचेगा जैसे:
0x18: 00011000
0x24: 00100100
0x18: 00011000
जैसा कि 8 पिक्सेल चौड़ा काफी छोटे ग्राफिक्स बनाता है (अटारी 2600 मानकों द्वारा भी) यह एक ही छवि का एक बड़ा (हालांकि अधिक अवरुद्ध और विकृत) संस्करण बनाने के लिए ऊंचाई, चौड़ाई या दोनों को दोगुना या चौगुना करने के लिए आम था। वे आमतौर पर खिलाड़ी स्प्राइट और प्लेफिल्ड दोनों के लिए लंबवत या क्षैतिज रूप से फ़्लिप किए जाते हैं। गेम कॉम्बैट इसका एक अच्छा उदाहरण है।
चुनौती है, ASCII रूप में इन स्प्राइट्स को "ग्राफिक्स" के रूप में प्रदर्शित करने के लिए कोड लिखने की, जिसमें उन्हें लंबवत, क्षैतिज या दोनों तरह से खींचने या फ्लिप करने की क्षमता शामिल है। यह पूर्ण प्रोग्राम या कॉल करने योग्य फ़ंक्शन के रूप में होना चाहिए।
इनपुट:
- बाइट्स की एक सरणी, प्रत्येक उस रेखा के लिए क्षैतिज बिट्स का प्रतिनिधित्व करता है।
- प्रत्येक आयाम के लिए एक गैर-शून्य पूर्णांक मान, उस आयाम के लिए स्केलिंग कारक का प्रतिनिधित्व करने वाला क्षैतिज और ऊर्ध्वाधर।
- एक नकारात्मक मान इंगित करता है कि आयाम को अक्ष के साथ भी फ़्लिप किया जाना चाहिए।
आउटपुट:
- काले (0) पिक्सल के लिए एक अंतरिक्ष चरित्र और सफेद (1) पिक्सल के लिए अपनी पसंद के किसी भी प्रिंट करने योग्य, गैर-अंतरिक्ष चरित्र का उपयोग करके एसटीडीयूएस या एक नई-लाइन-अलग स्ट्रिंग के लिए एएससीआईआई प्रतिनिधित्व।
परीक्षण डेटा:
bmp1 = [ 0x06, 0x0F, 0xF3, 0xFE, 0x0E, 0x04, 0x04, 0x1E, 0x3F, 0x7F, 0xE3, 0xC3, 0xC3, 0xC7, 0xFF, 0x3C, 0x08, 0x8F, 0xE1, 0x3F ]
bmp2 = [ 0x07, 0xFD, 0xA7 ]
bmp3 = [ 0x00, 0x8E, 0x84, 0xFF, 0xFF, 0x04, 0x0E, 0x00 ]
bmp4 = [ 0x00, 0xFC, 0xFC, 0x38, 0x3F, 0x38, 0xFC, 0xFC]
नोट: उदाहरण के लिए बाइट्स के इनपुट एरे को हेक्स के रूप में प्रदान किया गया है। यदि आपका मंच बाइट प्रतिनिधित्व के लिए हेक्स शाब्दिक को स्वीकार नहीं करता है तो आप उन्हें मूल बाइट-समतुल्य शाब्दिक रूप में परिवर्तित कर सकते हैं।
उदाहरण आउटपुट:
f( bmp1, 1, 1 ) =>
--------
XX
XXXX
XXXX XX
XXXXXXX
XXX
X
X
XXXX
XXXXXX
XXXXXXX
XXX XX
XX XX
XX XX
XX XXX
XXXXXXXX
XXXX
X
X XXXX
XXX X
XXXXXX
--------
f( bmp1, -2, 1 ) =>
----------------
XXXX
XXXXXXXX
XXXX XXXXXXXX
XXXXXXXXXXXXXX
XXXXXX
XX
XX
XXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXXXX
XXXX XXXXXX
XXXX XXXX
XXXX XXXX
XXXXXX XXXX
XXXXXXXXXXXXXXXX
XXXXXXXX
XX
XXXXXXXX XX
XX XXXXXX
XXXXXXXXXXXX
----------------
f( bmp2, 1, 2 ) =>
--------
XXX
XXX
XXXXXX X
XXXXXX X
X X XXX
X X XXX
--------
f( bmp2, 2, 1 ) =>
----------------
XXXXXX
XXXXXXXXXXXX XX
XX XX XXXXXX
----------------
f( bmp2, -2, -2 ) =>
----------------
XXXXXX XX XX
XXXXXX XX XX
XX XXXXXXXXXXXX
XX XXXXXXXXXXXX
XXXXXX
XXXXXX
----------------
f( bmp3, 1, -1 ) =>
--------
XXX
X
XXXXXXXX
XXXXXXXX
X X
X XXX
--------
f( bmp3, 3, 3 ) =>
------------------------
XXX XXXXXXXXX
XXX XXXXXXXXX
XXX XXXXXXXXX
XXX XXX
XXX XXX
XXX XXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXX
XXX
XXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
------------------------
f( bmp4, -1, -1 ) =>
--------
XXXXXX
XXXXXX
XXX
XXXXXX
XXX
XXXXXX
XXXXXX
--------
f( bmp4, 4, 2 ) =>
--------------------------------
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX
--------------------------------
नोट: ऊपर और नीचे की क्षैतिज रेखाएँ आउटपुट की शुरुआत और अंत दिखाती हैं। वे आउटपुट में आवश्यक नहीं हैं, हालांकि शुरुआत और / या अंत में खाली लाइनों (सभी शून्य / रिक्त स्थान द्वारा दर्शाए गए) की आवश्यकता होती है, जैसा कि दिखाया गया है।
नोट 2: ये परीक्षण बिटमैप विकिपीडिया पर "उचित उपयोग" के रूप में टैग किए गए गेम स्क्रीनशॉट के आधार पर प्रेरित और पुन: तैयार / कोडित थे।
जीत का मानदंड
- यह कोड-गोल्फ है , इसलिए प्रति भाषा बाइट्स में सबसे छोटा कोड जीत जाता है।
- मानक खामियों को मना किया जाता है।