सोर्सकोड सेल्फी


20

उद्देश्य:

एक बार एक गुरु ने कहा कि एक सही कोड सेल्फी ऊपरी बाएं कोने से तिरछे तरीके से सबसे अच्छा शॉट है। एक कोड सेल्फी लगभग एक Quine की तरह है - लेकिन 45 डिग्री पर घुमाया गया। आपका मिशन एक प्रोग्राम कोड करना है जो एक कोड सेल्फी आउटपुट करता है।

नियम:

  1. आप किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं।
  2. आपके कार्यक्रमों को फ़ाइल, फ़ाइल नाम, नेटवर्क या किसी अन्य चीज़ से कोई इनपुट नहीं लेना चाहिए।

अनिवार्य मानदंड:

सेल्फी मोटिव और बैकग्राउंड के बारे में है, इसलिए ब्लैंकस्पेस (और अन्य फीचर्स जैसे कि लाइनफीड और ऐसे नहीं) को कैरेक्टर काउंट का हिस्सा नहीं माना जाता है। सभी दृश्यमान वर्णों को 45 डिग्री घुमाए गए स्थान पर आउटपुट करने के लिए प्रतिबंधित किया गया है, जबकि सभी गैर-दृश्य वर्ण सही 45 डिग्री घुमाए गए स्थिति तक सीमित नहीं हैं। एक सामान्य सेल्फी पर रंग पैलेट की तरह, एक कोड सेल्फी के लिए अनिवार्य है कि इसमें इन वर्णों में से कम से कम 16 शामिल हैं: {a-zA-Z0-9}

उदाहरण:

यदि यह उदाहरण वैध स्रोत है:

Output abcd
Output efgh
Output ijkl
Output mnop

उदाहरण कोड को इसका उत्पादन करना चाहिए:

   O         
  O u
 O u t
O u t p
 u t p u
  t p u t
   p u t
    u t   a  
     t   e b
        i f c
       m j g d
        n k h
         o l
          p

यह बाइट्स जीत में कोड-गोल्फ, सबसे छोटा सोर्सकोड है!


2
16 की अनोखी [a-zA-Z0-9]?
ऑप्टिमाइज़र

हम व्हॉट्सएप में सबमिशन कैसे स्कोर करेंगे?
Sp3000

व्हॉट्सएप संभव नहीं है, क्योंकि कंबल की गिनती नहीं है। हां, अद्वितीय के 16 [a-zA-Z0-9], कुल 16 वर्ण नहीं।
प्लेसेन

यह चुनौती उन भाषाओं के खिलाफ पक्षपाती है जिन्हें अपने कोड में लाइनब्रीक की आवश्यकता होती है। इस चुनौती के लिए बहुस्तरीय समर्थन करना बहुत कठिन है।
अंडरस्कोर

1
@nderscore शायद आप इस बारे में सही हैं। ठीक है, हम सभी यहाँ मज़े के लिए हैं, है ना? स्थिति से बाहर सबसे अच्छा करो! ;)
प्लेसेन

जवाबों:


7

जावास्क्रिप्ट ( ईएस 6 ), 72 बाइट्स

16 अद्वितीय अक्षरांकीय वर्ण पट्टिका: fjalert0plcgmixn

(f=j=>alert(`(f=${f})(0)`.replace(/./gmi,x=>' '.repeat(j++)+x+'\n')))(0)

mऔर iझंडे regexp में न्यूनतम पैलेट आवश्यकताओं को पूरा करने के लिए जोड़े जाते हैं।


4

सीजेएम, 30 28 25 बाइट्स

{95c103ic]seeSf.*N*Xmr}_g

A-Za-z0-9सीमा से 16 वर्ण होने के कारण यह एक प्रकार का लंबा है।

यह सीजेएम में एक मानक क्वीन का थोड़ा गैर-तुच्छ संस्करण है। जल्द ही स्पष्टीकरण जोड़ देंगे।

अद्यतन - 2 बाइट्स ने मार्टिन को धन्यवाद दिया, 3 बाइट ने डेनिस को धन्यवाद दिया

इसे यहाँ ऑनलाइन आज़माएँ


1

जावा, 312

class Z{public static void main(String[]a){String s="class Z{public static void main(String[]a){String s=%c%s%1$c,t;for(int i=0,j;i<326;System.out.println(t+s.format(s,34,s).charAt(i++)))for(j=i,t=%1$c%1$c;j-->0;)t+=' ';}}",t;for(int i=0,j;i<326;System.out.println(t+s.format(s,34,s).charAt(i++)))for(j=i,t="";j-->0;)t+=' ';}}

वास्तव में 326 बाइट्स हैं, लेकिन अगर मैं नियमों को सही ढंग से समझता हूं, तो मुझे 14 स्थानों की गणना करने की आवश्यकता नहीं है।

कार्यक्रम मूल रूप से एक मानक जावा क्वीन है, साथ ही बहुत सारे व्हाट्सएप।


1

पायथन 3, 139 वर्ण - 10 स्थान = 129 वर्ण

sjxd='sjxd=%r;[print(" "*i+(sjxd%%sjxd)[i]) for i in range(len(sjxd%%sjxd))]';[print(" "*i+(sjxd%sjxd)[i]) for i in range(len(sjxd%sjxd))]

चूँकि मेरा कोड एक लाइन था, मुझे बस इतना करना था कि मैं कार्यक्रम को तिरछे प्रिंट करूँ। मेरे तार का अजीब नाम 'sjxd' है ताकि मेरे कोड में 16 अद्वितीय अल्फ़ान्यूमेरिक वर्ण हो सकें।


0

सीएसएस, 69 बाइट्स

<style>:before,*{transform:rotate(45deg;display:block;content:'<style>

अन्य टैग के साथ संघर्ष से बचने के लिए एक खाली HTML पृष्ठ में रखें।

पैलेट: stylebfortanm45dgiplck(22 वर्ण)


0

MATLAB, 40 बाइट्स

पूरी पुनरावर्ती चीज़ के साथ थोड़ा मुश्किल है - आप अपने स्वयं के स्रोत कोड को कैसे प्रिंट करते हैं जब कोड को स्ट्रिंग में जोड़ने के लिए प्रिंट किया जाता है तो स्रोत कोड का आकार बढ़ जाता है। लेकिन, कभी भी कम नहीं, निम्नलिखित यह करेंगे:

123456;disp(diag('123456;disp(diag())'))

123456;बिट है की आवश्यकता 16 विशेष अक्षर से मिलने के लिए। निम्नलिखित का उपयोग किया जाता है:

'()123456;adgips

उपरोक्त कोड किसी कारण से ओक्टेव पर काम नहीं करता है, लेकिन MATLAB में काम करता है। नीचे उत्पादन है:

1                  
 2                 
  3                
   4               
    5              
     6             
      ;            
       d           
        i          
         s         
          p        
           (       
            d      
             i     
              a    
               g   
                (  
                 ) 
                  )

अब अगर आपको ans=थोड़ा भी बुरा नहीं लगता है कि MATLAB डालने में मजा आता है, तो निम्नलिखित 32 बाइट्स के लिए काम करेगा :

12345678;diag('12345678;diag()')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.