मैं BATCH से प्यार करता हूं, इसके बावजूद कार्यात्मक कमांड्स की चौंकाने वाली कमी के बावजूद, इसके पूर्ण-गैर-पूर्णांक समर्थन की कमी के कारण। क्यूं कर? क्योंकि यह काम करता है:
SET var=SET
%var% i=0
यह मूल्यांकन करेगा:
SET var=SET
SET i=0
शानदार है, है ना? मैंने इस तकनीक का उपयोग BATCH कार्यक्रम से पहले किया है, क्योंकि यह बाइट्स बचाता है!
आपकी चुनौती, क्या आपको इसे स्वीकार करना चाहिए, इस तरह से "गोल्फ" बैच कार्यक्रम होंगे। आपको ऐसे इनपुट BATCH प्रोग्राम के बाइट का आकार घटाना है, जिसमें ऐसे SET
बयान शामिल हैं जो कार्यक्रम के कुछ हिस्सों का मूल्यांकन करेंगे, और किसी अन्य तरीके से कार्यक्रम को संशोधित नहीं करेंगे। (यह कहता है, परिवर्तनशील नाम को कुछ कम करने के लिए, यह अस्वीकार कर दें। ध्यान रखें कि BATCH, वैरिएबल से निकलता है, मामला असंवेदनशील है।) आपका स्कोर इस प्रकार गिना जाता है:
score = # of characters in your program + 5*(net result bytes in test cases below)
मैं अधिक परीक्षण मामलों को जोड़ने का अधिकार सुरक्षित रखता हूं, ताकि परीक्षण के मामलों के लिए कार्यक्रम का अनुकूलन करने के लिए काम करने को हतोत्साहित कर सकूं।
इस चुनौती के लिए, अपने SET
बयान नियंत्रण वर्ण (शामिल नहीं हो सकता |
, <
, >
, %
) या लाइनब्रेक। आप एक सेट स्टेटमेंट के अंदर कोड के टुकड़ों को स्थानांतरित करने के अलावा अन्य कोड को संशोधित नहीं कर सकते हैं। (अर्थात्, आप अनावश्यक व्हाट्सएप को नहीं हटा सकते हैं, इसके EQU
साथ प्रतिस्थापित कर सकते हैं ==
, आदि) हम मान लेंगे कि लाइनें समाप्त हो रही हैं \n
।
परीक्षण के मामलों
प्रत्येक परीक्षण का मामला एक अलग कोड ब्लॉक में है, और प्रत्येक परीक्षण का मामला आत्म-निहित है, जिसका अर्थ है कि आपको केवल यह मानकर चलना चाहिए कि इसके भीतर क्या दिया गया है। (यानी, यदि आप SET d=SET
एक कार्यक्रम में हैं, तो वह कथन स्वचालित रूप से किसी अन्य कार्यक्रम को नहीं दिया जाएगा)। प्रत्येक उदाहरण परिणाम प्रत्येक परीक्षण मामले के बाद पाया जा सकता है। परीक्षण मामलों के बीच एक रेखा होती है।
@ECHO रवाना वेतन वृद्धि = १० : पाश यदि% वृद्धि% EQU 0 GOTO समाप्त होती है ECHO% वेतन वृद्धि% सेट / ए% वृद्धि% - = 1 गोटो लूप :समाप्त बाहर जाएं
@ECHO रवाना SET / p INPUT = यहां इनपुट दर्ज करें: सेट R =% 1 ECHO इनपुट का अंतिम चार्ट यहां:% R: ~ -1%
@ECHO रवाना वेतन वृद्धि = १० : ई बचना ईसीएचओ एफ : च गोटो जी ECHO जी : जी गोटो एच ईसीएचओ एच : ज गोटो मैं ECHO i :मैं गोटो जे ईसीएचओ जे : j IF 3 == 4 (ECHO 4) ELSE (ECHO 5) IF 5 == 3 (GOTO l) ELSE (GOTO k) : कश्मीर ECHO हो गया। ECHO बैट बाहर !! बाहर जाएं : एल गोटो जी
ईसीओ हैलो, हैलो, हैलो, हैलो, हैलो, हैलो, हैलो,!, हैलो, एलो !, लेलो।
उदाहरण आउटपुट:
@ECHO रवाना वेतन वृद्धि = १० : पाश यदि% वृद्धि% EQU 0 GOTO समाप्त होती है ECHO% वेतन वृद्धि% सेट / ए% वृद्धि% - = 1 गोटो लूप :समाप्त बाहर जाएं(0 बाइट्स सहेजे गए)
@ECHO रवाना SET% i% = इनपुट यहां: SET / p INPUT =% i% दर्ज करें सेट R =% 1 ECHO% I%% का अंतिम चार्ट R: ~ -1%(3 बाइट्स प्राप्त)
@ECHO रवाना वेतन वृद्धि = १० सेट जी = गोटो सेट ई = ईसीएचओ : ई % छ% च % E% च : च % छ% छ % E% छ : जी % छ% ज %एह : ज % छ% i % E% मैं :मैं % छ% j % E% j : j IF 3 == 4 (% e% 4) ELSE (% e% 5) IF 5 == 3 (% g% l) ELSE (% g% k) : कश्मीर % E% हो गया। % ई% बचन बाहर !! बाहर जाएं : एल % छ% छ(10 वर्ण सहेजे गए)
SET% h% = ello, ईसीएचओ एच% एच% एच% एच% एच% एच% एच% एच% एच% एच% एच% एच% नमस्ते !, एच एच एच% एलो !, लेलो।(1 चरित्र सहेजा गया)
AAA %increment%
→ set a=increment¶AAA %%a%%
अमान्य है, और AAA %1 BBB %2
→ set a= BBB ¶AAA %1%a%%2
वैध है। (iirc) इसलिए आपको इसे औपचारिक रूप देने की आवश्यकता है। ( ¶
एक नई
@
पहले से नहीं है SET
) गोल्फ प्रोग्राम से एक्स्ट्रोजन आउटपुट स्वीकार्य है?