एक घड़ी चेहरा प्रदर्शित करें


39

घड़ी के चेहरे पर 12 नंबर इस तरह प्रदर्शित करें:

           12            
     11           1      

 10                   2  


9                       3


  8                   4  

      7           5      
            6            

ग्रिड को बेहतर ढंग से देखने के लिए, यहाँ डॉट्स के साथ एक है:

...........12............
.....11...........1......
.........................
.10...................2..
.........................
.........................
9.......................3
.........................
.........................
..8...................4..
.........................
......7...........5......
............6............

ध्यान दें कि ग्रिड अधिक चौड़े दिखने के लिए दो के एक कारक द्वारा चौड़ाई में फैला हुआ है।

यह भी ध्यान दें कि दो-अंकीय संख्याओं को उनके स्थान के साथ संरेखित किया गया है। 9 अंकों को बाईं ओर फ्लश होना चाहिए।

परिणाम को मल्टीलाइन स्ट्रिंग (लाइनों की सूची नहीं) के रूप में लौटाएं या प्रिंट करें। कोई भी अनुगामी स्थान वैकल्पिक है। अंतिम न्यूलाइन भी वैकल्पिक।

जवाबों:


25

चारकोल , 40 बाइट्स

F¹²«M⁻↔⁻¹⁴⊗÷×⁴鳦⁸⁻⁴↔⁻⁷÷×⁴﹪⁺³ι¹²¦³P←⮌I⊕ι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। व्याख्या: गणितीय रूप से प्रत्येक अंक के बीच की गणना करता है। चारकोल 0-अनुक्रमित है (इस प्रकार आउटपुट करने के लिए ), इसलिए क्षैतिज और ऊर्ध्वाधर ऑफसेट के सूत्र निम्नानुसार हैं:112

δx=|1424i3|8δy=4|74i3|

जहाँ ।i=i+3(mod12)


22

जावास्क्रिप्ट (Node.js) , 91 बाइट्स

बहुत चालाक दृष्टिकोण नहीं है, लेकिन मैं इस समय कुछ भी कम करने में विफल रहा हूं।

_=>`K12
E11K1

A10S2


9W3


B8S4

F7K5
L6`.replace(/[A-Z]/g,c=>''.padEnd(Buffer(c)[0]&31))

इसे ऑनलाइन आज़माएं!


4
मुझे बफ़र () के विकल्प के रूप में पसंद हैcharCodeAt()
डाउनवेज

1
@Downgoat जो मुझे आश्चर्यचकित करता है कि क्या हमारे पास नोड विशिष्ट विशेषताओं के लिए Node.js प्रश्न में गोल्फ के लिए युक्तियाँ होनी चाहिए । यकीन नहीं है कि यह इसके लायक है, हालांकि।
अरनौलड

शायद एक अलग उत्तर जोड़ें जिसमें सभी नोड विशिष्ट विशेषताएं हैं, या कम से कम सभी अलग-अलग उत्तरों को जोड़ने वाली सूची है?

15

05AB1E , 39 33 31 बाइट्स

6 बाइट्स बचाने के लिए मैजिक ऑक्टोपस यूरन का धन्यवाद !

कोड

6xsG12N-N•°£•NèØú«тR∞Nè¶×]\6».c

कुछ 33 बाइट विकल्प:

711ćŸā•Σ°w•₂вú‚øJƵt3в¶×‚ø»6xŠ».c¦
6xsŸ5L•Σ°w•₂вúõ¸ì‚ζJï2Ý«ƶ×)ø».c
6xsG¶12N-N•Θ{©•₂вNèú«ƵB∞Nè¶×]6J.c
6xsG12N-N•Θ{©•₂вNèú«тR∞Nè¶×]6s».c

05AB1E एन्कोडिंग का उपयोग करता है । इसे ऑनलाइन आज़माएं!


अच्छा जवाब! मुझे बहुत ही मूल के ÿसाथ का उपयोग पसंद है .V! और मज़ेदार है कि आपने 12¤दोनों 12और 2स्टैक पर कैसे उपयोग किया है । मैं शायद सिर्फ इस्तेमाल किया होगा 12Y, लेकिन मुझे लगता है कि कैसे अप्रासंगिक है, क्योंकि दोनों के ढेर पर 12 और 2 हैं। अगर मैं 05AB1E में इस चुनौती की कोशिश करता तो मैं बाइट-काउंट में उच्चतर तरीके से समाप्त हो जाता .. लगता है कि मुझे अभी बहुत कुछ सीखना बाकी है। ;)
केविन क्रूज़सेन

@ केविनक्रूजसेन ओह हाँ, मैं भूल गया Y। यह एक आसान विकल्प है हाहा।
अदनान

मुझे नहीं पता कि मैं 6 में से 6 बाइट्स को ठीक कर रहा हूं: 6xsŸ5L•δ;Ì’•2ôúð.ø‚ζJ012∞S¶×‚ζJ.cलेकिन आप यहां कुछ भी उपयोग करने के लिए स्वागत करते हैं।
मैजिक ऑक्टोपस Urn

1
@MagicOctopusUrn ज़िप के साथ अच्छी चाल, मैंने ऐसा नहीं सोचा था।
अदनान

1
@adnan पर 6xŠ»भी प्रॉप्स , मैंने ऐसा कभी नहीं सोचा होगा।
मैजिक ऑक्टोपस Urn

10

6502 मशीन कोड (C64), 82 76 73 बाइट्स

00 C0 A2 0E BD 38 C0 29 03 A8 A9 0D 20 25 C0 BD 38 C0 4A 4A A8 A9 20 20 25 C0
BD 29 C0 20 D2 FF CA 10 E1 60 20 D2 FF 88 10 FA 60 36 35 37 34 38 33 39 32 30
31 31 31 31 32 31 31 2C 1A 4C 0B 5C 03 4C 00 06 2C 00 15 00 2C
  • -6 बाइट्स, चतुर विचार के लिए अरनॉल्ड का धन्यवाद :)
  • अर्नुल्ड के विचार के बाद एक और -3 बाइट्स 1विशेष रूप से प्रमुख अंकों का इलाज नहीं करते हैं

यहां विचार केवल उन सभी संख्याओं के अंकों को संग्रहीत करने का है, जिनकी आवश्यकता है। अतिरिक्त जानकारी की आवश्यकता होती है, पूर्व-निर्धारित करने के लिए नई संख्या और सामने रिक्त स्थान की संख्या।

नई संख्या की अधिकतम संख्या है 3, इसलिए हमें इसके लिए 2 बिट्स की आवश्यकता है, और रिक्त स्थान की अधिकतम संख्या है 23, इसलिए 5 बिट्स पर्याप्त हैं। इसलिए, प्रत्येक अंक को प्रिंट करने के लिए, हम इस जानकारी को एक "कंट्रोल बाइट" में निचोड़ सकते हैं।

तो, इस समाधान के लिए डेटा बिल्कुल 30 बाइट्स लेता है: 15 एकल अंक और 15 संबंधित "कंट्रोल बाइट्स"।

ऑनलाइन डेमो

उपयोग: SYS49152शुरू करने के लिए।

असंतुष्ट टिप्पणी :

         00 C0                          ; load address
.C:c000  A2 0E       LDX #$0E           ; table index, start from back (14)
.C:c002   .mainloop:
.C:c002  BD 38 C0    LDA .control,X     ; load control byte
.C:c005  29 03       AND #$03           ; lowest 3 bits are number of newlines
.C:c007  A8          TAY                ; to Y register for counting
.C:c008  A9 0D       LDA #$0D           ; load newline character
.C:c00a  20 25 C0    JSR .output        ; repeated output subroutine
.C:c00d  BD 38 C0    LDA .control,X     ; load control byte
.C:c010  4A          LSR A              ; and shift by two positions for ...
.C:c011  4A          LSR A              ; ... number of spaces
.C:c012  A8          TAY                ; to Y register for counting
.C:c013  A9 20       LDA #$20           ; load space character
.C:c015  20 25 C0    JSR .output        ; repeated output subroutine
.C:c018  BD 29 C0    LDA .digits,X      ; load current digit
.C:c01b  20 D2 FF    JSR $FFD2          ; output
.C:c01e  CA          DEX                ; decrement table index
.C:c01f  10 E1       BPL .mainloop      ; still positive -> repeat
.C:c021  60          RTS                ; and done.
.C:c022   .outputloop:
.C:c022  20 D2 FF    JSR $FFD2          ; output a character
.C:c025   .output:
.C:c025  88          DEY                ; decrement counting register
.C:c026  10 FA       BPL .outputloop    ; still positive -> branch to output
.C:c028  60          RTS                ; leave subroutine
.C:c029   .digits:
.C:c029  36 35 37 34 .BYTE "6574"
.C:c02d  38 33 39 32 .BYTE "8392"
.C:c031  30 31 31 31 .BYTE "0111"
.C:c035  31 32 31    .BYTE "121"
.C:c038   .control:
.C:c038  31 2C 1A 4C .BYTE $31,$2C,$1A,$4C
.C:c03c  0B 5C 03 4C .BYTE $0B,$5C,$03,$4C
.C:c040  00 06 2C 00 .BYTE $00,$06,$2C,$00
.C:c044  15 00 2C    .BYTE $15,$00,$2C

2
क्या आप JSR $FFD2 / DEY / BNE loop / LDA .control,X / RTSन्यूट्रीलाइंस और स्पेस दोनों के लिए कहे जाने वाले सबरूटीन का उपयोग करके 2 बाइट्स बचा सकते हैं ? मुझे लगता है कि यह मुख्य कोड में +10 बाइट लंबी और सेव -12 बाइट्स होगी।
अरनौलड

1
वास्तव में, मुझे लगता है कि अगर सबरूटीन कर रहा है JSR $FFD2 / DEY / BPL loop / LDA .control,X / RTSऔर प्रवेश बिंदु है तो आप अधिक बाइट बचा सकते हैं DEY। इस तरह, आपको 0मुख्य कोड में परीक्षण नहीं करना है ।
अर्नुलद

धन्यवाद अच्छा विचार, बाद में संपादित करेंगे। उत्तरार्द्ध हालांकि काम नहीं करेगा, मुझे एक ऐसे मामले की आवश्यकता है जो पूरे लूप को छोड़ देता है।
फेलिक्स पालमेन

1
यदि Y = 0, DEY / BPL / RTSबिना किसी संसाधन के तुरंत बाहर निकल जाएगा JSR $FFD2। (ध्यान दें कि उस योजना के साथ, सबरूटीन का प्रवेश बिंदु होना चाहिए DEY।)
अर्नुलद

1
@ अर्नुल्ड काफी प्रयोग के बाद, मुझे लगता है कि सभी अंकों को संग्रहीत करने के आपके सुझाव का उपयोग करते हुए सबरूटीन को रखना सबसे छोटा है :)
फेलिक्स पालमेन


6

आर , 75 68 बाइट्स

write("[<-"(rep("",312),utf8ToInt('*`®÷ĥĹĚä—M'),1:12),1,25)

इसे ऑनलाइन आज़माएं!

अंकों की स्थिति को संकुचित किया। त्रिकोणमितीय उत्तर (संपादन का इतिहास देखें) के साथ आने की कोशिश में बहुत समय बिताने के बाद ऐसा किया।

इस अन्य आर जवाब से प्रेरित होकर खरीदें जे। डी - अपवोट!

जे। डिओ के लिए 7 बाइट्स से बचाए गए।


68 बाइट्स - अंकगणित से बचने के लिए हैश बदल दिया और writeडिफ़ॉल्ट विभाजक का उपयोग करने के लिए कॉल को बदल दिया ।
जे।

1
@ J.Doe यह इस तरह से अधिक समझ में आता है। बेशक मेरे गोल्फ का दस्तावेज नहीं है, मुझे कोई सुराग नहीं है कि मैंने पहली बार में एक
दृढ़

5

HTML + जावास्क्रिप्ट (कैनवास), 13 + 161 = 174 बाइट्स

मनमाना कैनवास स्थिति 6 बाइट्स का उपयोग करता है।

with(C.getContext`2d`)with(Math)for(font='9px monospace',textAlign='end',f=x=>round(sin(x*PI/6)*6)*measureText(0).width*2,x=13;--x;)fillText(x,f(x)+80,f(9-x)+80)
<canvas id=C>

तुलना के लिए ग्रिड के साथ:

with(C.getContext`2d`)with(Math){
    for(font='9px monospace',textAlign='end',f=x=>round(sin(x*PI/6)*6)*measureText(0).width*2,x=13;--x;)fillText(x,f(x)+80,f(9-x)+80)
    for(globalAlpha=0.2,y=-6;y<=6;y++)fillText('.'.repeat(25),6*measureText('.').width*2+80,y*measureText(0).width*2+80)
}
<canvas id=C>


पोजिशनिंग फॉर्मूला की व्याख्या

SVG उत्तर के साथ मेरे जावास्क्रिप्ट को देखें ।


8
मुझे नहीं लगता कि यह मायने रखता है क्योंकि चूंकि यह ASCII-art है, इसलिए हम सटीक बाइट-स्ट्रीम उत्पन्न करने वाले हैं जो चुनौती में निर्दिष्ट है, जबकि यह एक छवि प्रदान करता है जो आउटपुट की तरह दिखता है।
डाउन एंजेट

5

जावा 8 11, 141 138 बाइट्स

v->{for(var x:"92BCN5BB92BNN1BA991CNNNJ995DNNN2I991ENN6H92FN93G".getBytes())System.out.print(x<59?" ".repeat(x-48):(char)(x>76?10:x-17));}

इसे ऑनलाइन आज़माएं (नोट: String.repeat(int)एक repeat(String,int)ही बाइट-काउंट के लिए अनुकरण किया जाता है , क्योंकि जावा 11 अभी तक TIO पर नहीं है।)

स्पष्टीकरण नीचे के समान है, लेकिन यह " ".repeat(x-48)प्रारूप के बजाय रिक्त स्थान के लिए उपयोग करता है "%"+(x-48)+"s"


जावा 8, 141 बाइट्स

v->{for(var x:"92BCN5BB92BNN1BA991CNNNJ995DNNN2I991ENN6H92FN93G".getBytes())System.out.printf("%"+(x>58?"c":x-48+"s"),x>76?10:x>58?x-17:"");}

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

v->{                        // Method with empty unused parameter and no return-type
  for(var x:"92BCN5BB92BNN1BA991CNNNJ995DNNN2I991ENN6H92FN93G".getBytes())
                            //  Loop over the bytes of the above String:
    System.out.printf("%"+  //   Print with format:
     (x>58?                 //    If the character is a letter / not a digit:
       "c"                  //     Use "%c" as format
      :                     //    Else:
       x-48+"s"),           //     Use "%#s" as format, where '#' is the value of the digit
     x>76?                  //    If the byte is 'N':
      10                    //     Use 10 as value (newline)
     :x>58?                 //    Else-if the byte is not a digit:
      x-17                  //     Use 48-58 as value (the 0-9 numbers of the clock)
     :                      //    Else:
      "");}                 //     Use nothing, because the "%#s" already takes care of the spaces

आगे की व्याख्या 92BCN5BB92BNN1BA991CNNNJ995DNNN2I991ENN6H92FN93G:

  • उस स्थान के साथ सभी अंकों को बदल दिया जाएगा। (11 स्थानों के लिए यह इसलिए है 92।)
  • सभी 'एन' नई-लाइनें हैं
  • सभी ['ए', 'जे' घड़ी अंक हैं ([0,9])

5

आर, 168 159 125 बाइट्स

पाठ मैट्रिक्स में निर्धारित बिंदुओं पर संख्याओं को लिखने का अनुभवहीन समाधान। अंक UTF-8 अक्षरों के माध्यम से डिकोड किए जाते हैंutf8ToInt

"!"=utf8ToInt
write("[<-"(matrix(" ",25,13),cbind(!"LMFGSBCWAYCWGSM",!"AABBBDDDGGJJLLM")-64,-64+!"ABAAAA@BICHDGEF"),1,25,,"")

writeमैट्रिक्स को परिभाषित करने और उपयोग से बचने के लिए JayCe के सुझाव के साथ 9 बाइट्स गिराए गए ।

JayCe के स्टोरेज सुझाव के साथ एक और 34 बाइट गिरा दिया गया।


नमस्कार और PPCG में आपका स्वागत है! मुझे लगता है कि डॉट्स पैटर्न की कल्पना करने में मदद करने वाले हैं, लेकिन आउटपुट का हिस्सा नहीं हैं।
जोनाथन फ्रेच

PPCG में आपका स्वागत है! आप कुछ बाइट्स को परिभाषित mऔर उपयोग नहीं कर सकते हैं write: TIO । PS: आप अपने उत्तर में TIO लिंक शामिल करने के लिए बाध्य नहीं हैं, लेकिन यह आपके लिए उत्तर को अच्छी तरह से प्रारूपित करता है, TIO पृष्ठ के शीर्ष पर लिंक आइकन देखें।
JayCe

आप एक स्ट्रिंग में अंक स्टोर कर सकते हैं और !ऑपरेटर को 125 वर्णों तक पहुंचने के लिए अधिभारित कर सकते हैं । वास्तव में अच्छा समाधान!
JayCe

5

हास्केल, 88 87 बाइट्स

f=<<"k12{e11k1{{a10s2{{{9w3{{{b8s4{{f7k5{l6"
f c|c>'z'="\n"|c>'9'=' '<$['a'..c]|1<2=[c]

हास्केल में एनकोड-स्पेस-ए-लेटर्स मेथड (पहली बार @ अरनौल्ड के उत्तर में देखा गया )। इसका उपयोग करना {और इसका विस्तार करना सीधे \nउपयोग करने से एक बाइट कम है \n

इसे ऑनलाइन आज़माएं!



5

ब्रेनफक , 240 235 बाइट्स

++++++++++[>++>+>+++>+++++>++>++[<]>-]>>>++...........>-.+.<<.>.....>-..<...........>.<<..>.>.-.>-[<<.>>-]<++.<<...>>+++++++.>>+++[<<<.>>>-]<<------.<<...>..>+++++.<<<-[>>.<<-]>>>----.<<..>......>+++.<...........>--.<<.>............>+.

इसे ऑनलाइन आज़माएं!

टिप्पणी कोड

++++++++++                              Put 10 in cell 0
[>++>+>+++>+++++>++>++[<]>-]            Loop 10 times incrementing to leave 0 20 10 30 50 20 20 in memory 
>>>++                                   30 plus 2 = 32 (ascii space)
...........>-.+.                        print 11spaces followed by 12 (ascii 49 50)
<<.>.....>-..<...........>.             print 1newline 5spaces 11 11spaces 1 
<<..>.>.-.>-[<<.>>-]<++.                print 2newlines 1space 10 19spaces 2
<<...>>+++++++.>>+++[<<<.>>>-]<<------. print 3newlines         9 23spaces 3
<<...>..>+++++.<<<-[>>.<<-]>>>----.     print 3newlines 2spaces 8 19spaces 4
<<..>......>+++.<...........>--.        print 2newlines 6spaces 7 11spaces 5
<<.>............>+.                     print 1newline  12spaces 6

एक दुर्लभ उदाहरण जहां पाठ पर्याप्त दोहराव है कि ब्रेनफक प्रोग्राम आउटपुट की लंबाई से दो बार 1.6 गुना कम है !

जो किंग से सुझाव द्वारा बचाई गई 2 बाइट्स: >>>>>>-->[<]>-

3 बाइट्स को ascii कोड के दाईं ओर से तीसरे 20-स्थान के डाउनकाउन्टर को बचाकर 10 30 50उन्हें तुरंत बाईं ओर ले जाने से बचाया गया । बचाता है <<>>जब बीच की खाई को भरने 8और 4लेकिन लाइन के लिए 1 बाइट कहते हैं >>>++

मूल संस्करण

++++++++++                              Put 10 in cell 0
[>+>+++>+++++>++>++>++<<<<<<-]          Loop 10 times incrementing to leave 0 10 30 50 20 20 20 in memory 
>>++                                    30 plus 2 = 32 (ascii space)
...........>-.+.                        print 11spaces followed by 12 (ascii 49 50)
<<.>.....>-..<...........>.             print 1newline 5spaces 11 11spaces 1 
<<..>.>.-.>-[<<.>>-]<++.                print 2newlines 1space 10 19spaces 2
<<...>>+++++++.>>+++[<<<.>>>-]<<------. print 3newlines         9 23spaces 3
<<...>..>+++++.>>>-[<<<<.>>>>-]<<<----. print 3newlines 2spaces 8 19spaces 4
<<..>......>+++.<...........>--.        print 2newlines 6spaces 7 11spaces 5
<<.>............>+.                     print 1newline  12spaces 6


4

जेली , 32 बाइट्स

⁶ẋ“¿×¿ Œ4ç4Œ!¿Ø‘ż“øn0œ’Œ?D¤Fs25Y

एक पूर्ण कार्यक्रम जो परिणाम प्रिंट करता है।

इसे ऑनलाइन आज़माएं!

कैसे?

(मैंने अभी तक कुछ भी नहीं सोचा है / पाया गया है, “¿×¿ Œ4ç4Œ!¿Ø‘जो मुझे इस भाग के लिए लंबे समय से लगता है - उछाल / बेस-अपघटन / वेतन वृद्धि, कुछ भी नहीं बचता है!)

⁶ẋ“¿×¿ Œ4ç4Œ!¿Ø‘ż“øn0œ’Œ?D¤Fs25Y - Main Link: no arguments
⁶                                - space character
  “¿×¿ Œ4ç4Œ!¿Ø‘                 - code-page indices list = [11,17,11,32,19,52,23,52,19,33,11,18]
 ẋ                               - repeat (vectorises) -> [' '*11, ' '*17, ...]
                          ¤      - nilad followed by link(s) as a nilad:
                 “øn0œ’          -   base 250 number = 475699781
                       Œ?        -   first natural number permutation which would be at
                                 -   index 475699781 if all permutations of those same
                                 -   natural numbers were sorted lexicographically
                                 -   = [12,11,1,10,2,9,3,8,4,7,5,6]
                         D       -   to decimal lists = [[1,2],[1,1],[1],[1,0],[2],[9],[3],[8],[4],[7],[5],[6]]
                ż                - zip together = [[' '*11, [1,2]], [' '*17, [1,1]], ...]
                           F     - flatten = [' ',' ',...,1,2,' ',' ',...,1,1,...]
                            s25  - split into chunks of 25 (trailing chunk is shorter)
                               Y - join with new line characters
                                 - implicit print

LOL मैं वास्तव में आश्चर्यचकित हूं कि यह भोला दृष्टिकोण है।
एर्ग आउटफोलर

4

सी (जीसीसी) , 145 137 125 बाइट्स

केवल टैब स्थिति हार्ड-कोडेड हैं: सभी लाइन स्पेसिंग और घड़ी मान लूप में उत्पन्न होते हैं।

सुझावों के लिए फिर से छत पर धन्यवाद।

i,j,k;f(char*t){for(i=7;i--;t=memset(t+sprintf(t,"%*d%*d"+3*!j,"NHDA"[j]-65,6+i,"AMUY"[j]-65,6-i),10,k=j+i/4)+k)j=i>3?6-i:i;}

इसे ऑनलाइन आज़माएं!


सुझाएँ "\r\7\3"[j]बजाय"NHDA"[j]-65
ceilingcat

3

PHP , 97 बाइट्स

<?=gzinflate(base64_decode(U1CAA0MjLghtqIAkyMWlYGiggAmMuLi4LBWwA2OgnIKCBRYZEy6IHQrmSIKmXMhKzAA));

इसे ऑनलाइन आज़माएं!

यह एक कठोर कोडित संपीड़ित स्ट्रिंग है। मुझे इससे छोटा कोई समाधान नहीं मिला!


क्या आप बाइनरी संपीड़ित स्ट्रिंग को स्रोत फ़ाइल में रख सकते हैं और base64_decode को छोड़ सकते हैं? मैंने यह कोशिश की और मुझे एक 'gzinflate (): डेटा त्रुटि' मिली, लेकिन यह संभव हो सकता है यदि स्रोत फ़ाइल को पाठ संपादक के बजाय witha hex संपादक लिखा गया हो।
bdsl

@ बीडीएसएल वास्तव में मैंने ऐसा किया है कि पहले और आपको एचईएक्स संपादक की आवश्यकता नहीं है, आप बस पीएचपी का उपयोग कर सकते हैं file_put_contents($path, '<?=gzinflate("'.gzdeflate($clockString,9).'");');, लेकिन मुझे यकीन नहीं है कि इसके अंदर द्विआधारी डेटा के साथ एक कोड कैसे पोस्ट किया जाए। ऐसी फाइल 70 बाइट्स की होती है।
Night2

3

पायके , 37 बाइट्स

3B 32 35 75 07 0d 13 0c 22 14 35 18 44 74 5F 74 2B 46 6F 68 32 C4 52 7D 74 2A 31 32 25 31 32 7C 60 52 2D 29 73

यहाँ यह कोशिश करो! (कच्चे बाइट्स)

;25Dt_t+Foh2.DR}t*12%12|`R-)s

यहाँ यह कोशिश करो! (मानव पठनीय)

                              - o = 0
;25                           - set line width to 25 characters
                              -      `[13, 19, 12, 34, 20, 53, 24]`
                              -       (In hex version, encoded in base 256, regular version in input field)
    t_t                       -     reversed(^[1:])[1:]
   D   +                      -    ^^ + ^
        Foh2.DR}t*12%12|`R-)  -   for i in ^:
         o                    -            o++
          h                   -           ^+1
           2.DR               -          divmod(^, 2)
               }t             -         (remainder*2)-1
                 *            -        quotient * ^
                  12%         -       ^ % 12
                     12|      -      ^ or 12 (12 if 0 else ^)
                        `     -     str(^)
                         R-   -    ^.rpad(i) (prepend spaces such that length i)
                            s -  sum(^)
                              - output ^ (with newlines added)

3

ब्रेनफक , 315 313 बाइट्स

2 बाइट्स ओवस के लिए धन्यवाद बचा लिया !

++++[>++++<-]>[>+++>+++>+++>+++>>++>+++>+++>+++<<<<<<<<<-]>+++++>++++>+++>++>++++++++++>>+++++++>+><<<...........>>.<<<<.>.>.....>>..<<...........>>.<<<..>.>>.>.<<<...................<<.>...>>++.<.......................<<<.>>...>..>-.<...................<<<<.>>>..>......>-.<...........<<<<<.>>>>.>............>-.

इसे ऑनलाइन आज़माएं!

सभी एक कोड ब्लॉक में:

++++[>++++<-]>[>+++>+++>+++>+++>>++>+++>+++>+
++<<<<<<<<<-]>+++++>++++>+++>++>++++++++++>>+
++++++>+><<<...........>>.<<<<.>.>.....>>..<<
...........>>.<<<..>.>>.>.<<<................
...<<.>...>>++.<.......................<<<.>>
...>..>-.<...................<<<<.>>>..>.....
.>-.<...........<<<<<.>>>>.>............>-.

आप ++++[>++++<-]>शुरुआत में 16 के लिए उपयोग कर सकते हैं ।
ovs

@ नोव्स आह, बिल्कुल, धन्यवाद !!
कोनर ओ'ब्रायन

लोल, आप ><अपने कोड में हैं
जो किंग

3

पॉवर्सशेल, 94 88 82 बाइट्स

डायरेक्ट पॉवरशेल फॉर्मेट ऑपरेटर{i,w}सूचकांक के साथ एक पैरामीटर के लिए एक प्लेसहोल्डर का मतलब है, प्लेसहोल्डर की iचौड़ाई wसही संरेखण के साथ है।

"{11,13}
{10,7}{0,12}

 10{1,20}


9{2,24}


  8{3,20}

{6,7}{4,12}
{5,13}"-f1..12

पॉवरशेल, 88 बाइट्स

पोर्ट ऑफ़ अरनल्ड का जावास्क्रिप्ट उत्तर

-6 बाइट्स @AdmBorkBork के लिए धन्यवाद

[RegEx]::Replace("K12
E11K1

A10S2


9W3


B8S4

F7K5
L6",'[A-Z]',{' '*("$args"[0]-64)})

ग्रिड को बेहतर ढंग से देखने के लिए, '.'इसके बजाय उपयोग करें ' '


1
.PadLeft88 बाइट्स के बजाय स्ट्रिंग गुणन क्यों नहीं करें
AdmBorkBork

इसका एक चतुर उपयोग है -f। आप इसे ऑनलाइन आज़माने के लिए लिंक शामिल क्यों नहीं करते ! तो अन्य यह देख सकते हैं कि आपका कोड कैसे काम करता है?
AdmBorkBork 12

मेरे पास This site can’t be reachedकेवल त्रुटि है । माफ़ कीजिये।
माज़ी

आह, यह शर्म की बात है। यह एक अच्छा संसाधन है। :-(
AdmBorkBork

मैं सहमत हूँ। धन्यवाद।
mazzy

3

सी (जीसीसी) , 125 109 105 बाइट्स

x,*d=L"<;1:2938475640P`P05";main(i){for(;i=d[12];printf("%*d",i/4,*d++-48))for(x=i&3;x--;)puts("");}
  • -16 बाइट्स (बेहतर लूप व्यवस्था के लिए -3, -नॉन-प्रिंट करने योग्य चरों सहित सीधे -13 के लिए) जोनाथन फ्रीच के लिए धन्यवाद ।
  • -4 बाइट्स को एक शिफ्ट के लिए एक डिवीजन की जगह देकर और इस तथ्य का दुरुपयोग करते हुए कि कई सिस्टम (जैसे कि एक होस्टिंग TIO) पर, sizeof(wchar_t) == sizeof(int)- विंडोज़ पर काम नहीं करेगा :) विचार के लिए धन्यवाद ErikF

इसे ऑनलाइन आज़माएं!

यह 6502 समाधान से लेकर सी। मेरे सामान्य विचार का एक बंदरगाह है। यह थोड़ा संशोधित है: एक प्रमुख के लिए एक ध्वज होने के बजाय 1, चरित्र को 48 घटाकर दशमलव के रूप में मुद्रित किया जाता है, इसलिए 10 - 12 के रूप में एन्कोड किया :गया है <



@JonathanFrech अच्छा लूप पुनर्व्यवस्था, मुझे आश्चर्य है कि मैं कैसे चूक गया कि एक: ओ लेकिन वास्तव में स्रोत में गैर-मुद्रण योग्य वर्णों को स्वीकार करने की उम्मीद नहीं की थी :)
फेलिक्स पाम्स

जब तक चरित्र को UTF-8 में दर्शाया जा सकता है, यह संकलक द्वारा तकनीकी रूप से स्वीकार्य है। क्या यह एक अच्छी बात है बल्कि इस बात पर निर्भर करता है कि आप क्या कर रहे हैं :-)
ErikF

यूनिकोड की बात करें, तो आप विस्तृत वर्णों का उपयोग करके 3 और बाइट्स बचा सकते हैं: इसे ऑनलाइन आज़माएं!
ErikF

1
इसलिए मुझे कोड गोल्फिंग पसंद है: मुझे यूबी का दुरुपयोग करना और उन सभी "चीजों का उपयोग करना चाहिए जो आपको नहीं करना चाहिए" जो आप समय के साथ उठाते हैं!
एरिकएफ

2

अटैची , 69 बाइट्स

{ReplaceF["l12
f11l1

b10t2


9x3


c8t4

g7l5
m6",/"\\l",sp&`*@STN]}

इसे ऑनलाइन आज़माएं!

यह रिक्त स्थान के प्रत्येक रन को इनकोड करता है NTS[count of spaces]:; NTS"न्यूमेरिक टू शॉर्ट" बिलिन है, जो संख्याओं को स्ट्रिंग्स के रूप में व्यक्त करने की अनुमति देता है। जैसे, NTS[95] = $R1और NTS[170297] = $XQOSTNइस बिलीन का विलोम है।

यह उत्तर फ़ंक्शन के परिणाम के साथ इनपुट में ReplaceFअक्षरों ( ) के सभी घटनाओं ( ) को प्रतिस्थापित /\l/करता है sp&`*@STN, जो पहले अक्षर को डीकोड करता है और फिर spकई बार दोहराता है (एक स्थान)।


2

स्विफ्ट , 178 165 बाइट्स

var b="";for c in"L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6"{let i=c.unicodeScalars.first!.value;if c=="n"{b+="\n"}else if i>64{for _ in 0..<(i-65){b+=" "}}else{b+="(c)"}};print(b)

डाउन्गोएट ने जो पोस्ट किया है उसके आधार पर, मैंने इसे 165 बाइट्स तक घटा दिया है:

print("L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6".unicodeScalars.map{let x=Int($0.value);return x==110 ?"\n":(x>64 ?String(repeating:" ",count:x-65):"($0)")}.joined())

$0नामांकित चर में परिवर्तित होने के साथ विस्तारित :

print("L12nF11L1nnB10T2nnn9X3nnnC8T4nnG7L5nM6".unicodeScalars.map { c in let x = Int(c.value) return x == 110 ? "\n" : (x>64 ? String(repeating:" ", count: x-65) : "(c)") }.joined())

इनपुट स्ट्रिंग निम्नानुसार एन्कोडेड है: अपरकेस अक्षर ( A-Z) रिक्त स्थान का प्रतिनिधित्व करते हैं, 65 से ऑफसेट। तो Aइसका मतलब है कि 0 रिक्त स्थान, B1 स्थान का मतलब है, पहले का Lमतलब है 11 रिक्त स्थान, इत्यादि nको न्यूलाइन में बदल दिया जाता है। अन्य सभी वर्ण इस प्रकार मुद्रित होते हैं।

इसे यहां ऑनलाइन चलाएं (धन्यवाद, mbomb007)


PPCG में आपका स्वागत है! हम में से कई हमारे उत्तरों में कार्यक्रम के लिए हाइपरलिंक को शामिल करने के लिए ऑनलाइन दुभाषियों के लिए ट्राई इट ऑनलाइन (टीआईओ) का उपयोग करते हैं। यहाँ आपके उत्तर के लिए एक है: tio.run/##JY1BC4IwGIb/yvpOSjScqRW2DgV1sVMeOgQx14SBfMacRhB/…
mbomb007

यहां आपके जवाब का एक गोल्फ है जो 172 बाइट्स है। यह इसके बजाय एक फ़ंक्शन का उपयोग करता है: {"L12NF11L1NNB10T2NNN9X3NNNC8T4NNG7L5NM6".unicodeScalars.map({(c)->String in let x=c.value;return x==78 ? "\n" : x>64 ?String(repeating:" ",count:x-65) : "\(c)"}).joined()}(स्विफ्ट 3 (उत्तर -swift-version 3पर) क्योंकि स्विफ्ट 4 गिरा हुआ घटाव यह जैसा दिखता है)
डाउनगेट

@Downgoat मैंने इसे एक और 3 बाइट्स कम किया और इसे स्विफ्ट 4 के साथ संगत किया। अपडेट की गई पोस्ट देखें।
यहेजकेल एलिन



1

एसवीजी के साथ जावास्क्रिप्ट, 188 बाइट्स

120% की मनमानी लाइन ऊंचाई 4 बाइट्स का उपयोग करती है।

with(Math)for(s='<pre><svg viewBox=-8-8+16+16 style=font-size:1;text-anchor:end>',f=x=>round(sin(x*PI/6)*6),x=13;--x;)s+=`<text x=${f(x)*2}ch y=${f(9-x)*1.2}>${x}</text>`
document.write(s)

तुलना के लिए ग्रिड के साथ:

with(Math)for(s='<pre><svg viewBox=-8-8+16+16 style=font-size:1;text-anchor:end>',f=x=>round(sin(x*PI/6)*6),x=13;--x;)s+=`<text x=${f(x)*2}ch y=${f(9-x)*1.2}>${x}</text>`
for(y=-6;y<=6;y++)s+=`<text x=12ch y=${y*1.2} style=fill:#0002>${'.'.repeat(25)}</text>`
document.write(s)


पोजिशनिंग फॉर्मूला की व्याख्या

चलो f(x) = round(sin(x * π/6) * 6)

माना जाता है कि मूल घड़ी का केंद्र है, ग्रिड किसी भी घड़ी की संख्या के सही-सबसे अंकों का निर्देशांक xहै [ f(x) * 2, f(9 - x)]।


1

बैश, 225 बाइट्स

s=(12 0 6 11 0 0 2 19 0 0 0 0 1 23 0 0 0 0 3 19 0 0 7 11 13 0)
n=(12 11 1 10 2 9 3 8 4 7 5 6) j=0;for i in {0..25};{
[ ${s[i]} = 0 ]||{ printf %${s[i]}s " ";echo -n ${n[j]}
j=$((j+1));};[ $((i%2)) -gt 0 ]&&echo;}|sed 's/ //'

अनायास यह लूप में प्रत्येक पंक्ति को छापने के भोले समाधान से अधिक लंबा है (यदि टैबस्टॉप का उपयोग करते हुए 132 वर्ण)।


चाहेंगे tr -d \<space>(जहां <space>sed प्रतिस्थापन के बजाय काम करने की जगह चरित्र है)?
कृति लिथोस

@Cowsquack दुख की बात है, के tr -d\ बराबर नहीं होगाsed 's/ //g'
क्रिस्टलगेको

1

पायथन 3 , 112 88 87 बाइट्स

स्ट्रिंग प्रक्षेप का उपयोग कर एक समाधान।

print(f'''{12:13}
{11:7}{1:12}

 10{2:20}


9{3:24}


  8{4:20}

{7:7}{5:12}
{6:13}''')

इसे ऑनलाइन आज़माएं!

-25 बाइट्स ओव्स और हर्मन एल के लिए धन्यवाद।


और यदि आप Hermans स्वरूपण स्ट्रिंग का उपयोग करते हैं, तो आप इसे ~ 85 बाइट्स तक प्राप्त कर सकते हैं।
अंडा

एक और बाइट के साथ {11:7}
अंडा

1

सी (जीसीसी) , 135 123 110 बाइट्स

यह एक सरल एन्कोडिंग जहां किसी भी उपयोग करता है cके बीच 'a'और 'z'का प्रतिनिधित्व करता है c-'a'+1दोहराया रिक्त स्थान, '`'एक नई पंक्ति का प्रतिनिधित्व करता है, और अन्य सभी पात्रों अपरिवर्तित छोड़ दिया जाता है।

f(i){char*s="k12`e11k1``a10s2```9w3```b8s4``f7k5`l6`";for(;i=*s;s++)i>96?printf("%*s",i-96,""):putchar(i%86);}

इसे ऑनलाइन आज़माएं!


के *s=L"...";f(i){बजाय सुझावf(i){char*s="...";
छत

1

टी-एसक्यूएल, 132 बाइट्स

PRINT SPACE(11)+'12
     11           1

 10'+SPACE(20)+'2


9'+SPACE(23)+'3


  8'+SPACE(19)+'4

      7           5
            6'

केवल 12 बाइट्स तुच्छ समाधान की तुलना में कम होते हैं ( PRINTपूरे स्ट्रिंग के रूप में)।

मुझे एक भिन्नता मिली है जो बहुत लंबी है ( 235 226 बाइट्स), लेकिन बहुत अधिक एसक्यूएल-जैसी:

SELECT CONCAT(SPACE(PARSENAME(value,4)),PARSENAME(value,3),
              SPACE(PARSENAME(value,2)),PARSENAME(value,1))
FROM STRING_SPLIT('11.1..2,5.11.11.1,. .. ,1.10.20.2,. .. ,. .. ,.9.23.3,
                   . .. ,. .. ,2.8.19.4,. .. ,6.7.11.5,12.6.. ',',')

STRING_SPLITइसे अल्पविराम में पंक्तियों में तोड़ता है, और PARSENAMEप्रत्येक पंक्ति को बिंदुओं पर विभाजित करता है। 1 और 3 का उपयोग कितने रिक्त स्थान को प्रिंट करने के लिए किया जाता है, 2 और 4 को प्रदर्शित करने के लिए उपयोग किया जाता है।

(लाइन ब्रेक इस में सिर्फ पठनीयता के लिए हैं)


1

पर्ल 6 , 116 बाइट्स

my@a=["  "xx 13]xx 13;($_=pi/6*++$;@a[0+|6*(1.1-.cos);0+|6*(1.1+.sin)]=fmt ++$: "%2s")xx 12;@a>>.join>>.&{say S/.//}

इसे ऑनलाइन आज़माएं!

(26 @ बाइट बचाने के लिए Ta @JoKing)

पर्ल 6 , 142 बाइट्स

my@a=[[[32,32]xx 13]xx 13];for 1..12 {$_=$^b*pi/6;@a[round 6*(1-.cos);round 6*(1+.sin)]=[" $b".ords.tail(2)]}
{say S/^.//}(.[*;*].chrs) for @a

इसे ऑनलाइन आज़माएं!

मैं कुछ करना चाहता था ... अलग। तो यह एक अक्षर के जोड़े के माध्यम से सभी अंकों की स्थिति की गणना करता है, प्रारंभिक स्थान से स्ट्रिप्स और लाइनों को प्रिंट करता है।

विभिन्न मापदंडों के लिए आसानी से परिवर्तनीय, उदाहरण के लिए 17 अंकों के साथ 45 वर्ण चौड़ा संस्करण



@ जॉकिंग: टा, मैंने इसमें पेस्ट किया है और इसे विकी बना दिया है।
फिल एच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.