आपका लक्ष्य : कोड का एक टुकड़ा लिखने के लिए जिसके परिणामस्वरूप "हैलो, दुनिया!" STDOUT या समकक्ष के लिए मुद्रित किया जा रहा है।
नियम : कोड पूरी तरह से ASCII को प्रिंट करने में होना चाहिए। सभी कोड कार्यात्मक होने चाहिए - किसी भी एक गिनती वर्ण को हटाने से परिणाम में परिवर्तन होना चाहिए या कोड कार्य न करने का कारण बन सकता है। असाइनमेंट के बाद सभी चर का उपयोग किया जाना चाहिए। चरित्र और स्ट्रिंग शाब्दिक आउटपुट के लिए आवश्यक होना चाहिए - अर्थात्, किसी भी वर्ण शाब्दिक या किसी भी चरित्र के स्ट्रिंग स्ट्रिंग के भीतर किसी अन्य वर्ण के साथ प्रतिस्थापन परिणाम को बदलने में सक्षम होना चाहिए (और भागने के अनुक्रम के प्रभाव से नहीं - बैकैश के साथ वर्ण की जगह या उसके बराबर)
(नोट: अंतिम नियम में संपादित किया गया था)
स्कोरिंग : यह वह जगह है जहाँ यह दिलचस्प हो जाता है। विशिष्ट कोड-बॉलिंग नियमों के अनुसार, उच्चतम स्कोर जीतता है जो वर्णों की संख्या से निर्धारित होता है। लेकिन बार-बार पात्रों के उपयोग से बिंदु कटौती होगी। विशेष रूप से ...
- किसी भी अल्फ़ान्यूमेरिक वर्ण (az, AZ, 0-9) के बार-बार उपयोग के परिणामस्वरूप 3 अंक प्रति दोहराने में कटौती होगी (पहले उपयोग में कटौती नहीं होती है)।
- बुनियादी विराम चिह्नों का बार-बार उपयोग ([? -, ":";];) - कोष्ठक सहित - प्रति पुनरावृत्ति में 2 अंकों की कटौती होगी।
- अन्य ASCII वर्णों का बार-बार उपयोग {`~ @ # $% ^ & * _ + = | \ /> <} - घुंघराले कोष्ठक सहित - दोहराव में 4 अंकों की कटौती होगी।
- रिक्त स्थान, टैब और नई लाइनों के बार-बार उपयोग के परिणामस्वरूप प्रति बार 1 अंक की कटौती होगी। यही है, केवल एक स्थान, टैब या न्यूलाइन का पहला उपयोग आपके कुल की ओर गिना जाएगा।
नोट: टिप्पणियों की कुल संख्या की ओर गिनती नहीं है, हालांकि एक टिप्पणी के प्रारंभ / अंत को चिह्नित करने वाले वर्ण करते हैं। उदाहरण के लिए, C / C ++ में, यदि आपके पास है /* This is a comment */
, तो यह दो स्लैश और दो तारांकनों की गणना करेगा, लेकिन उनके बीच कुछ भी नहीं।
कुछ उदाहरण (नोट: नमूना भाषा के रूप में जूलिया का उपयोग करते हुए) ...
print("Hello, world!");
कुल दृश्यमान वर्ण: 22
सम्मिलित
स्थान: +1
दोहराया वर्णानुक्रम
: - llor के लिए दोहराया विराम चिह्न: -2 "
अंतिम अंक: 22 + 1-12-2 = 9
print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII
कुल वर्ण: 43 (# के बाद किसी वर्ण की गणना नहीं करता है, जो कि टिप्पणी वर्ण है)
इसमें शामिल है स्थान: +1
दोहराया अल्फ़ान्यूमेरिक्स: -18 rr1008 के लिए
दोहराया विराम चिह्न: -24 के लिए () "" "" ", ,,,,
फ़ाइनल स्कोर: 43 + 1-24-18 = 2
xy=STDOUT
m="Hello, world!"
print(xy,m);
कुल दृश्यमान वर्ण: 37
सम्मिलित न्यूलाइन: +1 सम्मिलित
स्थान: +1
दोहराया वर्णानुक्रम
: - xyllor के लिए दोहराए गए विराम चिह्न: -4 के लिए ",
अन्य दोहराए गए ASCII: -4 के लिए =
अंतिम अंक: 37 + + 1-18-4 -4 = 13
कोड के अमान्य टुकड़े की एक जोड़ी ...
x=2;print("Hello,world!")
समस्या: x
असाइन किया गया है, लेकिन उपयोग नहीं किया गया है।
print("Hello,"*" world!")
समस्या: *
अनावश्यक है, परिणाम इसके बिना समान होगा।
k=1
if k>0
print("Hello, world!")
else
print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end
समस्या: दूसरी print
कमांड नहीं चलेगी। इसके अलावा, दूसरी print
कमांड में उद्धरण में वर्णों को हटाने से आउटपुट नहीं बदलेगा।
x="Hello, world!";
print(x)
समस्या: न्यूलाइन को हटाने से परिणाम में परिवर्तन नहीं होगा या त्रुटि उत्पन्न नहीं होगी (जूलिया में, अर्धविराम केवल आवश्यक है यदि एक ही पंक्ति में कई कमांड हैं, अन्यथा केवल रिटर्न वैल्यू दबा देता है)।
print("Hellos\b, world!")
समस्या: s
चरित्र परिणाम को प्रभावित नहीं करता है, क्योंकि यह मिट जाता है \b
। यह स्वीकार्य है यदि कोड के माध्यम से ( "Hello",char(100),"\b, world!"
), लेकिन स्ट्रिंग शाब्दिक या वर्ण शाब्दिक के माध्यम से नहीं किया जा सकता है।
सुविधाजनक स्कोर-कैलकुलेटर - http://jsfiddle.net/4t7qG/2/ - Doorknob को धन्यवाद