> <> , 38 37 बाइट्स
शाप आपको डबल स्पेस केस * हिलाता है मछली *।
<v&0
>i:84*=?v0(?;67*o&1&
\ &0o?&a/
आप इसे ऑनलाइन आज़मा सकते हैं (आपको बस इतना करना होगा कि नीचे के पास के क्षेत्र से इनपुट दें और फिर Give
बटन दबाएं)। आगे गोल्फिंग के सुझाव हमेशा स्वागत योग्य हैं, विशेष रूप से दूसरी और तीसरी पंक्तियों के सामने उन बेकार स्थानों को हटाने के लिए विचार।
यदि आपको अतिरिक्त रिक्त स्थान के लिए एक अतिरिक्त नई लाइन प्रिंट करने की अनुमति दी गई थी, तो कोड 27 बाइट्स हो सकता है :
>i:84*=?v0(?;67*o
^ oa<
व्याख्या
नोट: स्पष्टीकरण का क्रम सूचक के स्थान के अनुरूप होगा (इसलिए यदि कोड को समझाया जाता है कि कोई व्यक्ति किस आदेश पर विचार करेगा, यह इसलिए है क्योंकि यह वह क्रम है जिसमें सूचक इसे निष्पादित करता है)।
पंक्ति 1:
<v&0
< redirects flow leftward
0 pushes 0 onto the stack
& pops 0 and puts it in the register
v redirects flow downward
लाइन 2:
>i:84*=?v0(?;67*o&1&
> redirects flow leftward
i: pushes input and then duplicates it
84* pushes 32 (the space character numerically)
=?v pops 32 and input and redirects flow downward if they're equal
0(?; pops input and terminates if input is less than 0*
67*o pushes 42 (asterisk) and prints it
&1& pushes register value and then puts 1 in the register
*in ><>, the command i returns -1 if no input is given
पंक्ति 3:
एनबी यह रेखा रिवर्स में जाती है, इसलिए दाएं से बाएं पढ़ें।
^ &0o?&a<
< redirects flow leftward
a pushes 10 (newline) onto the stack
o?& prints a newline if the register is not 0
&0 sets the register to 0
^ redirects flow upwards (back to the second line)
मूल रूप से, इनपुट सुनिश्चित करने के लिए प्रोग्राम परीक्षण (जो एक समय में एक वर्ण पढ़ा जाता है) एक स्थान नहीं है और फिर एक तारांकन चिह्न प्रिंट करता है। यदि कोई इनपुट नहीं है तो यह समाप्त हो जाता है (इनपुट मान -1 है)। यह सुनिश्चित करने के लिए कि यह अतिरिक्त newlines नहीं छापता है, यह रजिस्टर मान का उपयोग करता है, जिसे यह या तो 0 या 1 पर सेट करता है। जिस तरह से मैंने इसे सेट किया है, यह स्टैक पर धकेल दिए गए बाहरी मूल्यों के बारे में परवाह नहीं करता है (जैसे जब वह इसे सेट करता है तो रजिस्टर का मूल्य1
तारांकन चिह्न मुद्रित बाद ); जब कार्यक्रम समाप्त हो जाता है तो वे स्टैक पर रहते हैं लेकिन कुछ भी नहीं करते हैं।
मैं इसे भ्रामक थोड़ा के बाद से मैं का इस्तेमाल किया हो सकता है पता है 84*
और 67*
के बजाय " "
और "*"
क्रमशः, लेकिन वह था, क्योंकि मैं किसी भी कारण से कार्यक्रम में तार डाल की तरह महसूस नहीं किया था।