मुझे तुमसे प्यार है, मुझे तुमसे प्यार है, मुझे तुमसे प्यार है!


58

"बाइनरी हार्ट" शीर्षक के साथ XKCD # 99 , कुछ अंकों के लाल रंग के साथ लोगों और शून्य की एक सरल छवि दिखाता है।

यहाँ छवि विवरण दर्ज करें

लाल दिल नग्न आंखों को दिखाई देता है, लेकिन बाइनरी अनुक्रम में छिपा संदेश नहीं है। यदि आप सभी रिक्त स्थान और newlines को हटाते हैं और बाइनरी अनुक्रम को 8 बिट ASCII- कोड के रूप में व्याख्या करते हैं, तो आप संदेश के साथ समाप्त करेंगे:

iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv

प्यारा सही?

Pssst ... स्ट्रिंग एक शुद्ध स्ट्रिंग पुनरावृत्ति नहीं है।


आपकी चुनौती इस द्विआधारी छवि को 21 अंकों के पार बनाने की है, और नीचे 23 अंकों की है। प्रत्येक पंक्ति में प्रत्येक अंक के बीच एक स्थान होना चाहिए, और प्रत्येक नई पंक्ति के लिए एक नई पंक्ति होनी चाहिए। ध्यान दें कि अंतिम बिट केवल अक्षर की शुरुआत है e, क्योंकि 21*238. से विभाज्य नहीं है। आपको उन बिट्स को भी सही करने की आवश्यकता है।

फ़ंक्शन या प्रोग्राम को कोई इनपुट नहीं लेना चाहिए। लीडिंग और ट्रेलिंग स्पेस और न्यूलाइन्स को स्वीकार किया जाता है।

आपके कोड का परिणाम इस तरह दिखना चाहिए:

0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1
1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1
1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0
1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0
1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0
1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1
0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1
0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1
0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0
1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1
0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0
1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1
0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0
1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1
0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1
1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0
0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0
1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1
1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0
0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0
0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0
1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1
0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1

यह कोड गोल्फ है, इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।


लीडरबोर्ड


1
मैं चाहता हूं कि आप अभी जान लें कि मैं किसी तरह रास्ता खोजूंगा?
ब्लूराजा - डैनी पफ्लुगुएफ्ट

25
मैं सबसे छोटा कोड देता हूँ, जो लाल और काले रंग का उपयोग करके दिल को बनाने के लिए आउटपुट देता है
Beta Decay

मैं यह जानने के लिए और अधिक उत्सुक हूं कि OASCII आउटपुट स्ट्रिंग से कैपिटलाइज़्ड s में छिपा संदेश क्या है !
ब्रैंडनस्क्रिप्ट

कोई संदेश नहीं है, या कम से कम कोई भी एक्सप्लेन एक्सएक्सएक्सएक्स.कॉम द्वारा खोजा गया है जो कहते हैं कि "ऊपरी मामले और निचले-मामले" ओ "का मिश्रण दोहराए जाने वाले पैटर्न से बचने के लिए जानबूझकर माना जाता है।"
पेट्र Hudeček

1
@WeeingIfFirst Haha, आपने मेरे प्रोग्रामिंग कौशल को नजरअंदाज कर दिया :)। मैं विजेता को 100 रेप बाउंटी के साथ पुरस्कार दूंगा, जब मैं कर सकता हूं
बीटा डेके

जवाबों:


21

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

“ḅUɗaṚPXṙ’Bṁ484¬“½:J⁺ȤṾ‘Ḥ¤¦Ḋs21G

3 बाइट बंद करने के लिए @JonathanAllan को धन्यवाद!

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

यह काम किस प्रकार करता है

मुख्य लिंक

“ḅUɗaṚPXṙ’Bṁ484¬“½:J⁺ȤṾ‘Ḥ¤¦Ḋs21G

जब प्रोग्राम चलाया जाता है, तो निलादि (अर्थात बिना किसी तर्क के) निष्पादित किया जाता है। इसका वापसी मूल्य अनुमानित रूप से मुद्रित किया जाएगा।

“ḅUɗaṚPXṙ’

जेली के कोड पेज में उद्धृत वर्णों के सूचकांकों को ढूंढें और उन्हें एक जीवनी आधार 250 संख्या के अंकों के रूप में व्याख्या करते हैं। इससे पूर्णांक 13021639057551959994 प्राप्त होता है

          B

उत्पन्न पूर्णांक को बाइनरी में कनवर्ट करता है। यह बिट सरणी 10110100101101100010011111101011111010111100101001111111111010 पर पैदावार करता है, जो स्ट्रिंग ilOveyOu के UTF-8 एन्कोडिंग से मेल खाती है , बाईं ओर एक बिट स्थानांतरित कर दिया।

स्थानांतरण आवश्यक है क्योंकि Bएक अग्रणी 0 के साथ थोड़ा सरणी वापस नहीं किया जा सकता है । अन्य विकल्पों में द्विआधारी अंकों की उपेक्षा या रिवर्स में वर्ग की गणना करना शामिल है, लेकिन यह दृष्टिकोण एक बाइट बचाता है।

            ṁ484

1 से 484 तक की श्रेणी में उत्पन्न सरणी को ढालता है , अर्थात, यह 484 की लंबाई प्राप्त करने के लिए आवश्यक के रूप में कई बार सरणी की सामग्री को दोहराता है ।

यह एक और बिट है जो हमें ज़रूरत है, पारी के लिए खाते में। अब हम पहले बिट को हटा सकते हैं, लेकिन बाद में ऐसा करने का मतलब है कि सभी बिट्स को सूचकांकों पर भी झूठ बोलना पड़ता है, जो हमें उपरोक्त बाइट को बचाने की अनुमति देता है।

                 “½:J⁺ȤṾ‘Ḥ¤

और ( [10, 58, 74, 138, 154, 186] ) के बीच वर्णों के कोड बिंदु लेता है , फिर उन्हें "अनहेल्वर्स" करता है, अर्थात, उन्हें 2 से गुणा करता है ( [20, 116, 148, 276, 308, 372) ]]

                ¬           ¦

सशर्त रूप से उन सूचकांकों पर बिट्स को नकारता है। यह मूल पैटर्न में ओ / ओ विविधताओं से मेल खाती है ।

आखिरकार,

                             Ḋs21G

बिट सरणी को हटाता है (पहले बिट को हटाते हुए), शेष सरणी को 21 तत्वों की पंक्तियों में विभाजित करता है और परिणामस्वरूप मैट्रिक्स को ग्रिड के रूप में प्रिंट करता है।


2
आप Oडिफ़ॉल्ट के रूप में अपरकेस होने से 3 और बाइट्स बचा सकते हैं , मुझे लगता है कि यह ऐसा करता है:“ỊḂr×C)ḃȯ’B¬ṁ483¬“Œ` ° @‘+\¤¦s21G
जोनाथन एलन

वहीं, लोअरकेस की तुलना में अधिक अपरकेस हैं। धन्यवाद!
डेनिस

4
तो यह काला जादू जैसा दिखता है ..
बैसब्रांड कंबरवुबवबूब

2
@BassdropCumberwubwubwub अब इसे लाल और काले जादू में बदलने का प्रयास होना चाहिए
मैथ्यू रो

43

जेली , 41 40 35 33 बाइट्स

अंत बनाने के लिए @ डेनिस का धन्यवाद ṖṖCG! (पूरक C= 1-xतार्किक नहीं के स्थान पर ¬)

“ƝƓỊ⁹Ȥ⁶Ị⁺‘ẋ8_“¤ÐŒ#'/‘¦32BFs21ṖṖCG

TryItOnline

कैसे?

“ƝƓỊ⁹Ȥ⁶Ị⁺‘ẋ8_“¤ÐŒ#'/‘¦32BFs21ṖṖCG - Main link: no arguments
“ƝƓỊ⁹Ȥ⁶Ị⁺‘                        - code page indexes [150,147,176,137,154,134,176,138]
                                        (bitwise negated values of ordinals of "ilOveyOu")
          ẋ8                      - repeat eight times
            _                     - subtract
                     ¦            - apply to indexes
             “¤ÐŒ#'/‘             - code page indexes [3,15,19,35,39,47]
                                        (the indexes of the lowercase Os)
                      32          - literal 32 (subtracting 32 from the bitwise negated
                                                'O's makes them bitwise negated 'o's)
                        B         - binary (all are 8 bits, hence the negation)
                         F        - flatten list
                          s21     - split into slices of length 21
                             ṖṖ   - pop (remove the last two slices)
                               C  - complement (transform the bits to what they should be)
                                G - format as a grid
                                        (inserts both the spaces and line feeds)

"रंग" संस्करण, 77 बाइट्स

“¤Ɓ¥J¬ ¥ƲėNėR½5ðḃḍCṬ’b19‘“Y^‘jĖŒṙḂ
“ƝƓỊ⁹Ȥ⁶Ị⁺‘ẋ8_“¤ÐŒ#'/‘¦32BFż¢Ḅị“¹0°1”s21ṖṖG

TryItOnline

जेली का कोई रंग आउटपुट नहीं है, लेकिन यह मेरे लिए वैसे भी (मैं अंधा रंग हूं) देखना बहुत आसान है ...

° ¹ ¹ ° ¹ ° ° ¹ ° ¹ ¹ ° ¹ ¹ ° ° ° ¹ ¹ ° ¹
¹ ¹ ¹ ° ¹ ¹ ¹ ° ¹ ¹ ° ° ¹ ¹ ° ° ¹ ° ¹ ° ¹
¹ ¹ ¹ ° ° ¹ ° ¹ ° ° ¹ ¹ ¹ ¹ ° ¹ ¹ ¹ ° ¹ °
¹ ° ¹ ¹ ° ¹ ° ° ¹ ° ¹ ¹ ° ¹ ¹ ° ° ° ¹ ° °
¹ ¹ ¹ ¹ ° 1 1 1 ° ¹ ¹ ° ° 1 1 0 ° ¹ ° ¹ °
¹ ¹ ¹ 1 0 0 1 0 1 1 ° 1 1 1 1 0 1 1 ¹ ° ¹
° ¹ ° 1 1 0 1 0 0 1 ° 1 1 0 1 1 0 0 ° ¹ ¹
° ¹ ¹ 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 ° ¹
° ¹ 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 ¹ °
¹ ° 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 ° ¹
° ° ¹ 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 ¹ °
¹ ° ¹ 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 ¹ ¹ ¹
° ¹ ° ¹ 0 1 1 0 1 0 0 1 0 1 1 0 ¹ ¹ ° ° °
¹ ¹ ° ¹ ¹ 1 1 0 1 1 1 0 1 1 0 0 ¹ ¹ ° ° ¹
° ¹ ° ¹ ¹ ¹ 1 0 0 1 0 1 1 0 1 ¹ ¹ ¹ ° ¹ ¹
¹ ° ¹ ° ¹ ° ¹ 1 0 1 0 0 1 0 ¹ ¹ ° ¹ ¹ ° °
° ¹ ° ° ¹ ¹ ¹ ¹ 0 1 1 1 0 ¹ ¹ ° ° ¹ ¹ ° °
¹ ° ¹ ° ¹ ¹ ¹ ¹ ° 0 1 0 ¹ ¹ ° ¹ ¹ ¹ ¹ ° ¹
¹ ¹ ° ¹ ° ¹ ° ¹ ¹ ° 1 ° ° ¹ ° ¹ ¹ ° ¹ ¹ °
° ° ¹ ° ° ¹ ¹ ¹ ¹ ° ¹ ¹ ¹ ° ¹ ¹ ° ° ¹ ¹ °
° ¹ ° ¹ ° ¹ ¹ ¹ ¹ ° ° ¹ ° ¹ ° ° ¹ ¹ ¹ ¹ °
¹ ¹ ¹ ° ¹ ° ¹ ° ¹ ¹ ° ¹ ° ° ¹ ° ¹ ¹ ° ¹ ¹
° ° ° ¹ ° ° ¹ ¹ ¹ ¹ ° ¹ ¹ ¹ ° ¹ ¹ ° ° ¹ ¹

कैसे?

“¤Ɓ¥J¬ ¥ƲėNėR½5ðḃḍCṬ’b19‘“Y^‘jĖŒṙḂ - Link 1: no arguments
“¤Ɓ¥J¬ ¥ƲėNėR½5ðḃḍCṬ’              - base 250 of a big number
                     b19           - convert to base 19, yields a list of integers
                        ‘          - increment those numbers
                         “Y^‘      - get code page indexes [89,94]
                             j     - join: [89,3,5,3,8, ... ,3,19,1,94]
                                         - {left-right, top-bottom} runs of colours
                              Ė    - enumerate [[1,89],[2,3],[3,5],[4,3],[5,8], ...]
                               Œṙ  - run-length decode [89 1s, 3 2s, 5 3s, 3 4s, 8 5s, ...]
                                 Ḃ - mod 2

“ƝƓỊ⁹Ȥ⁶Ị⁺‘ẋ8_“¤ÐŒ#'/‘¦32BFż¢Ḅị“¹0°1”s21ṖṖG - Main link: no arguments
“ƝƓỊ⁹Ȥ⁶Ị⁺‘ẋ8_“¤ÐŒ#'/‘¦32BF                 - same as the original to get 1s and 0s
                          ż                - zip with
                           ¢               - last link (1) as a nilad
                            Ḅ              - binary to integer (vectorises)
                             ị             - index into
                              “¹0°1”       - string "¹0°1"
                                    s21    - split into length 21 slices
                                       ṖṖ  - pop last two unused slices
                                         G - format as a grid

27
यदि आप निकाल देते हैं ¬, तो अंतिम चार बाइट बन सकते हैं ṖṖCG। :)
डेनिस

2
ओह वाह, बिल्कुल - कि बस किया जाना है!
जोनाथन एलन

1
मेरी पादरी क्षमा करें; शायद उचित शब्द है complement?
शर्लक

@ शर्लक 9, हां; फिक्स्ड एंड थैंक्स - मैं यह सब अच्छी तरह से नहीं कर सकता, इसलिए अक्सर शब्दों को गलत मिलेगा अगर वर्तनी जांच कोई झंडा नहीं देता है!
जोनाथन एलन

@WeeingIfFirst - मैंने जांच नहीं की, लेकिन आशा है कि यह अभी भी काफी अच्छा है जिसे रंगीन माना जाता है।
जोनाथन एलन

42

दरअसल, 58 बाइट्स

73*8╙:13542├`≈"÷≥"E`M"«%s₧ªn%s6û"7*%"♠n≥6û"+¿├`' +`M╪♂Σ♂Ri

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

व्याख्या

यहां तीन मुख्य भाग हैं, इसलिए मैं इसे तदनुसार तोड़ने जा रहा हूं।

भाग 1: आधार -255 स्ट्रिंग का निर्माण

हम वास्तव में बाइनरी स्ट्रिंग का निर्माण करने जा रहे हैं, वास्तव में स्टैक-आधारित (LIFO) संरचना का लाभ उठाने के लिए और बाइनरी स्ट्रिंग में अग्रणी शून्य के साथ जटिलताओं से बचने के लिए। इस प्रकार, लक्ष्य बाइनरी स्ट्रिंग है 110011011101111001000110110100101101010111011110010100111101010011001101110111100100011011010010110101011101111011010011110101001100110111011110010001101101001011010101110111101101001111010100110011011101111011000110110100101101010111011110010100111101010011001101110111100100011011010010110101011101111001010011110101001100110111011110110001101101001011010101110111101101001111010100110011011101111001000110110100101101010111011110010100111101010011001101110111101100011011010010110, जो 20083405242288679348048842451418880256193335738939042905519679590571514414673488599852759703515507690399267425671627412178904636115120346432419478दशमलव में बराबर है । बेस-256 में ( रूपांतरण के लिए CP437 वर्ण तालिका का उपयोग करके ), संगत स्ट्रिंग है ♠n≥6û«≥₧ªn≥6û«÷₧ªn≥6û«÷₧ªn÷6û«≥₧ªn≥6û«≥₧ªn÷6û«÷₧ªn≥6û«≥₧ªn÷6û। मूल बाइनरी स्ट्रिंग का निर्माण करने के लिए, हम बेस-256 स्ट्रिंग (इसमें पैटर्न का लाभ उठाते हैं) का निर्माण करते हैं, और दशमलव और बाइनरी में आधार रूपांतरण करते हैं।

बेस -256 स्ट्रिंग में निम्न प्रारूप (रिक्त स्थान और स्पष्टता के लिए जोड़े गए स्थान) हैं:

♠n≥6û
« (either ≥ or ÷) ₧ªn (either ≥ or ÷) 6û
  (7 times)

इस प्रकार, 7 मध्यम वर्गों में से प्रत्येक पाड़ का उपयोग करके बनाया जा सकता है «%s₧ªn%s6ûऔर जगह %sया तो साथ भागों या ÷

एस और ÷एस की विशिष्ट अनुक्रम हमें चाहिए ≥≥÷≥÷÷≥≥≥÷÷≥≥÷। चूंकि हमें इसकी लंबाई -१ स्ट्रिंग्स की सूची के रूप में आवश्यकता है, इसलिए इसका प्रतिनिधित्व करने का भोली तरीका होगा "≥≥÷≥÷÷≥≥≥÷÷≥≥÷"#(स्ट्रिंग को धकेलें, इसे सूची में बनाएं)। हालांकि, हम थोड़ा बेहतर कर सकते हैं। उस स्ट्रिंग को द्विआधारी संख्या (जहां प्रतिनिधित्व 1और ÷प्रतिनिधित्व करता है 0) के रूप में व्याख्या करके , हम 13542दशमलव में प्राप्त करते हैं । इसे वापस बाइनरी में परिवर्तित करके (पारंपरिक 1एस और 0एस का उपयोग करके ), और एक लंबाई -2 स्ट्रिंग में अनुक्रमण करके, हम भोले विधि की तुलना में एक कम बाइट का उपयोग करके सूची प्राप्त कर सकते हैं।

:13542├`≈"÷≥"E`M"«%s₧ªn%s6û"7*%"♠n≥6û"+
:13542├                                  push 13542, convert to binary
       `≈"÷≥"E`M                         for each bit:
        ≈                                  convert to integer (from string)
         "÷≥"E                             index into "÷≥"
                "«%s₧ªn%s6û"7*           push the scaffold for the middle section
                              %          old-style Python string formatting to fill in the scaffold
                               "♠n≥6û"+  prepend the beginning piece

भाग 2: बाइनरी में परिवर्तित करना

यह हिस्सा ज्यादा सीधा है। यदि वास्तव में आधार-256 को सीधे बाइनरी में बदलने की क्षमता थी, तो हम इसका उपयोग करेंगे। दुर्भाग्य से, ऐसा नहीं है, इसलिए हमें दशमलव को मध्यस्थ प्रारूप के रूप में उपयोग करना होगा।

,निम्नलिखित कोड में भाग 1 से कोड का प्रतिनिधित्व करता है - व्याख्यात्मक प्रयोजनों के लिए, मैं के साथ भाग 1 कोड बदल दिया है ,stdin से भाग 1 से उत्पादन को पढ़ने के लिए। यह वास्तविक अंतिम कोड का हिस्सा नहीं है।

8╙,¿├
  ,    Part 1 result
8╙ ¿   convert from base-256 to decimal
    ├  convert to binary

भाग 3: स्वरूपण

अगर चुनौती केवल बाइनरी स्ट्रिंग के रूप में आउटपुट करना था, तो हम करेंगे। हालाँकि, अभी भी हमारे पास 21 x 23 आयत में बाइनरी स्ट्रिंग प्राप्त करने के लिए कुछ प्रारूपण हैं।

जैसा कि भाग 2 में, ,पिछले भाग से आउटपुट का प्रतिनिधित्व करता है, और वास्तविक कोड का हिस्सा नहीं है।

73*,`' +`M╪♂Σ♂Ri
   ,              output from Part 2
    `' o`M        insert a space after every character
73*       ╪       chunk into 21 pieces
           ♂Σ     concatenate each piece
             ♂R   reverse each piece
               i  flatten
                  (implicitly print)

घर पर नज़र रखने वालों के लिए, यह बराबर पायथन 3 कोड (481 बाइट्स) है:

print('\n'.join([''.join(' '+c for c in bin(sum('\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■\xa0'.index(c)*256**i for i,c in enumerate(("♠n≥6û"+("«%s₧ªn%s6û"*7)%tuple("÷≥"[int(b)]for b in bin(13542)[2:]))[::-1])))[2:])[i*42:-~i*42][::-1]for i in range(23)][::-1]))

46
तुम्हें पता है, यह इस तरह की प्रोग्रामिंग है जो मुझे मिस्रवासियों के बारे में विश्वास दिलाता है जहां वास्तव में बहुत उन्नत और सफल प्रोग्रामर और हाइरोग्लिफ़िक्स बस उनकी पसंद की भाषा थी। +1
मंकीज़े

यह कौन सी भाषा थी? साथ ही, क्या यह उत्तर संकलित है?
जैक

@ जैक यह वास्तव में है । कोई संकलन शामिल नहीं।
मेगो

1
@Mego: 0 आप इस कोड को लिखने के लिए एक बॉस हैं
जैक

1
यदि आपको आधार संख्या 256 में अंक 34 की आवश्यकता हो तो क्या होगा? (स्ट्रिंग एन्क्लोजिंग कैरेक्टर)
जोनाथन एलन

22

जावास्क्रिप्ट (ईएस 6), 169 ... 136 135 बाइट्स

let f =

_=>"0213021203131214".replace(x=/./g,v=>0+[a=1768714102,a-8192,a-=66265089,a+8192,3][v].toString(2)).replace(x,(c,i)=>` 
`[+!(i%21)]+c)

console.log(f());

Andrakis में सहेजा गया 2 बाइट्स धन्यवाद
Hedi के लिए सहेजी गई 4 बाइट धन्यवाद
सहेजी गयी 3 5 बाइट्स धन्यवाद नील को

रंगीन संस्करण, 249 बाइट्स (237 बाइट्स जेएस + 12 बाइट्स ऑफ सीएसएस)

जेएस कोड दिल के लिए बोल्ड टैग के साथ ASCII कला का उत्पादन करता है। CSS के 12 बाइट्स को लाल रंग में रंगना आवश्यक है। (क्या वह बाइट गिनती उचित है?)

let f =

_=>"0213021203131214".replace(x=/./g,v=>0+[a=1768714102,a-8192,a-=66265089,a+8192,3][v].toString(2)).replace(x,(c,i)=>` 
`[+!(y=i/21|0,x=i%21)]+([57568,a=261112,a,b=524280,b+4,b+4,b,a+1024,65520][y-4]&1<<x|y>12&x>y-9&x<29-y?c.bold():c))

document.getElementById("o").innerHTML = f();
b{color:red}
<pre id="o"></pre>


2
आप अपनी जगह की जगह कुछ बाइट्स बचा सकते हैं s=>s.replace(/./g,'$& '):। मैं एक बहुत ज्यादा समान समाधान पर काम कर रहा हूँ।
एंड्राकिस

1
s.replace(/./g,'$& ')द्वारा प्रतिस्थापित नहीं किया जा सकता है s.split``.join` `?
हेडी

2
[...s].join` `
नील

1
मुझे लगता है कि replace(/./g,(c,i)=>c+=++i%21?' ':'\n')(जाहिर है कि वहां शाब्दिक न्यूलाइन का उपयोग करके) एक और बाइट बचाता है। उस विचार को व्यक्त करने का एक और बेहतर तरीका हो सकता है।
नील

20

05AB1E , 77 54 53 44 43 41 बाइट्स

CP-1252 एन्कोडिंग का उपयोग करता है ।

’i„΀î’8ו1žä¿*•S·£™J¦'iìÇb0ìJ011JSðý42ô»

व्याख्या

’i„Î€î’   # the string "iloveyou"
8×        # repeated 8 times
•1žä¿*•   # the number 3262264221 encoded in base 214
S·        # split to list and multiplied by 2, gives [6, 4, 12, 4, 4, 12, 8, 4, 4, 2]
£         # split the "iloveyou..." string into chunks of these lengths
™J        # title-case the chunks and join, giving the string with capitalized O's
¦'iì      # replace the faulty capitalized "I" in the beginning with a lower case "i"
Ç         # convert to list of ascii values
b0ì       # convert each to binary and prepend a 0 to each binary string
J011J     # join the strings and append "011"
Sðý       # add a space between each digit
42ô       # split in pieces of 42 (21 digits, 21 spaces)
»         # merge on newline

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


3
आपके पास एक प्रासंगिक प्रोफ़ाइल चित्र है
tomsmeding

3
@tomsmeding: वास्तव में! जब मैंने कुछ साल पहले मुलाकात की थी, तब उसने मुझे एक टोपी वाला लड़का
पकड़ा

मैं जानता हूँ कि यह 2.5 साल हो गया है, लेकिन आप कर सकते हैं गोल्फ Sðý42ô»के लिए S21ô», के बाद से »परोक्ष रिक्त स्थान से भीतरी सूचियों मिलती है (और The •1žä¿*•अब होना चाहिए •Å¾$6•, के बाद से पूर्णांकों आधार 214 के बजाय आधार 255 में इनकोड अब)।
केविन क्रूज़सेन

15

सीजेएम , 48 बाइट्स

19560Yb"Oo"f="uilvey"8*3/.\s:i2fb0a*7>21/W<Sf*N*

@MartinEnder के साथ सहयोग, जिन्होंने "uilvey"3/स्ट्रिंग के साथ एक मुश्किल 3 बाइट्स लिया । ऑनलाइन दुभाषिया

19560Yb        Convert 19560 to base 2
"Oo"f=         Index each bit into the string "Oo" to give "ooooOOooOOOooOoOOO"
"uilvey"8*3/   Repeat the string "uilvey" 8 times then split into chunks of 3
.\s            Vectorised swap (insert the Os into the right places) then stringify
:i2fb          Convert each char to int then take base 2
0a*            Join with 0s
7>             Remove the first 7 bits
21/            Split into chunks of length 21
W<             Drop the last row
Sf*            Join each row with spaces
N*             Join the rows with newlines

12

जावास्क्रिप्ट ईएस 6 आरईपीएल , 124 121 119 113 बाइट्स

सहेजे गए 6 बाइट @ETHproductions की बदौलत

यह एक पूर्ण कार्यक्रम है जिसे सही परिणाम देने के लिए REPL / कंसोल में चिपकाया जा सकता है।

for(i=r='';i<483;)r+=(`il${"Oo"[21>>i/64&1]}vey${"oO"[77>>i/64&1]}u`.charCodeAt(i/8%8)>>7-i%8&1)+(++i%21?` `:`
`)

अधिक क्रिया

for (i=0, r='';                         // r == the result
     i < 483;)                          // 483 == 21 * 23
r+= (                                   // construct "iloveyou"
        `il${                           // il
            "Oo"[21 >> (a = i/64) & 1]  // position in the loop defines the o or O
         }vey${                         // vey
            "oO"[77 >> a & 1]           // position in the loop defines the o or O
         }u`                            // u
        .charCodeAt(                    // "i" == 105 == 01101001
            i / 8 % 8                   // find the correct bit to append
        ) >> 7-i%8 & 1                  // shift it to select 1 or 0
    )
+                                       // add a space or newline
    (
        ++i%21 == 0 ? `
` : ` `                                 // every 21 characters add a new line, 
                                           otherwise a space
    )
;                                       // Javascript implicitly returns the last value 
                                           edited in a for loop

रंगीन जावास्क्रिप्ट केवल दिल, 281 बाइट्स

for(i=z=r='',h=[],g=[90,...[...'353871767176G4H4H5G5F7CABB9D7F5H3J1'].map(n=>parseInt(n,20)),-1];i<483;)r+=`%c`+(`il${"Oo"[21>>i/64&1]}vey${"oO"[77>>i/64&1]}u`.charCodeAt(i/8%8,--g[+z]||z++,h[i]=z%2)>>7-i%8&1)+(++i%21?` `:`
`);console.log(r,...h.map(H=>`color:${H?'red':'black'}`))

यह हर n बिट्स पर रंग स्विच करके काम करता है और कंसोल लॉग करने की क्षमता का उपयोग करता है

रंगीन सीएसएस हार्ट, 229 + 12 बाइट्स

यदि सीएसएस का उपयोग करने की अनुमति है, तो रंगीन दिल को जावास्क्रिप्ट कोड के 229 बाइट्स और सीएसएस के 12 बाइट्स से भी कम किया जा सकता है

for(i=z=r='',g=[90,...[...'353871767176G4H4H5G5F7CABB9D7F5H3J1'].map(n=>parseInt(n,20)),-1];C=`il${"Oo"[21>>i/64&1]}vey${"oO"[77>>i/64&1]}u`.charCodeAt(i/8%8,--g[+z]||z++)>>7-i%8&1,i++<483;)r+=(z%2?(''+C).bold():C)+(i%21?` `:`
`)


कारण मैंने इसे इस तरह से किया क्योंकि यह एक पूर्ण कार्यक्रम माना जा सकता है। कोई हार्डकोडेड वैरिएबल नहीं हैं जिन्हें उपयोगकर्ता द्वारा बदला जाना चाहिए, इसके बजाय इसे कॉपी पेस्ट किया जा सकता है और यह उसी तरह काम करता है। मैं इसे स्निपेट कहता हूं लेकिन यह एक पूर्ण कार्यक्रम हो सकता है। विचार?
बैसड्रॉप कंबरवुबवबूब

यह आरईपीएल व्यवहार पर निर्भर करता है, जिसका अर्थ है कि भाषा "जावास्क्रिप्ट ईएस 6 आरईपीएल" ( स्रोत ) है।
मेगो

@ मेगो धन्यवाद, मेरे जवाब को तदनुसार संपादित किया
बैसड्रॉन्ग कंबरवॉबुवब

1
मुझे पूरा यकीन है कि आप दोनों जगहों से छुटकारा पा सकते हैं aऔर सिर्फ num>>i/64&11 बाइट बचा सकते हैं। इसके अलावा, के ++i%21==0?newline:spaceरूप में ही है ++i%21?space:newline
ETHproductions

एक और टिप: i=0,r=''करने के लिए बदल i=r=''; ''स्वचालित रूप से 0. के लिए मजबूर है
ETHproductions

9

MATL, 56 55 बाइट्स

'!?u<TgGU*lB7SE1q3s.?Su(q6)iM'F'eilovyOu'Za8&B!FTTv21e!

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

व्याख्या

'!?u<TgGU*lB7SE1q3s.?Su(q6)iM'      % Previously compressed version of the string
F'eilovyOu'Za                       % Decompress this string
8&B                                 % Convert each char to 8-bit binary number
!                                   % Transpose the result
FTTv                                % Append [0 1 1] to the end to take care of 
                                    % the partial "e" bits
21e!                                % Reshape it into the appropriate shape
                                    % Implicitly display the result     

9

PowerShell v2 +, (UTF-16) 300 बाइट्स

@Mego के लिए गलत गलत बाइट गिनती सही

'ږƍ໬ƕ๓ƺ֥˄ϝӊ༭ǝ֥ţϝɥޔǮ૒ƱϝIJ˲ӷʴ˘ͻ֙ץŻ઴Ŭɻˌʼֽ͖ҶɻŦʼʞݖɛĽƳ'-split'(..)'-ne''|%{(-join($_[0,1]|%{[convert]::ToString(+$_,2)})).PadLeft(21,'0')-replace'(.)','$1 '}

सबसे छोटा नहीं है, लेकिन एक अलग दृष्टिकोण है। मैंने मैन्युअल रूप से प्रत्येक पंक्ति को लिया और उन्हें जोड़े में प्रत्येक (लगभग मोटे तौर पर) 9-11 महत्वपूर्ण बिट्स की लंबाई में काट दिया। उन बाइनरी मूल्यों में से प्रत्येक को एक में परिवर्तित कर दियाchar (नोट: पॉवरशेल डिफ़ॉल्ट रूप से यूटीएफ -16 का उपयोग करता है, न कि यूटीएफ -8 का), और इसे एक स्ट्रिंग में डाला जाता है। वह '...'शुरुआत में है।

हम तो -splitलंबाई 2 के तार में हैं, और प्रत्येक जोड़ी के माध्यम से लूप। उन जोड़ियों को char-एरे में विभाजित किया जाता है $_[0,1], और उनमें से प्रत्येक को एक इंट के रूप में डाला जाता है +$_, और [convert]एक बाइनरी ( ,2) में एड किया जाता है String। यह -joinएक ही स्ट्रिंग में एक साथ एड है, फिर PadLeftउचित लंबाई पाने के लिए है, तो प्रत्येक तत्व है-replace स्वयं और एक स्थान के साथ होता है '$1 '

उन तारों को पाइप लाइन पर छोड़ दिया जाता है, और आउटपुट निहित होता है, जिसमें डिफ़ॉल्ट Write-Outputतत्वों के बीच एक नई रेखा चिपकी होती है।

PS C:\Tools\Scripts\golfing> 'ږƍ໬ƕ๓ƺ֥˄ϝӊ༭ǝ֥ţϝɥޔǮ૒ƱϝIJ˲ӷʴ˘ͻ֙ץŻ઴Ŭɻˌʼֽ͖ҶɻŦʼʞݖɛĽƳ'-split'(..)'-ne''|%{(-join($_[0,1]|%{[convert]::ToString(+$_,2)})).PadLeft(21,'0')-replace'(.)','$1 '}
0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 
1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 
1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0 
1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 
1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 
1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 
0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 
0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 
0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 
1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 
0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 
1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 
0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 
1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 
0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 
1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 
0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 
1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 
1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 
0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 
0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 
1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 
0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 

मैं 300 यूटीएफ -16 बाइट्स गिनता हूं। अजगर 3:len("'ږƍ໬ƕ๓ƺ֥˄ϝӊ༭ǝ֥ţϝɥޔǮ૒ƱϝIJ˲ӷʴ˘ͻ֙ץŻ઴Ŭɻˌʼֽ͖ҶɻŦʼʞݖɛĽƳ'-split'(..)'-ne''|%{(-join($_[0,1]|%{[convert]::ToString(+$_,2)})).PadLeft(21,'0')-replace'(.)','$1 '}".encode('utf-16be'))
मेगो

@ माय ओह, ड्यूर। सिर्फ इसलिए कि मैं UTF-16 को स्ट्रिंग के लिए गिन रहा हूं इसका मतलब यह नहीं है कि मैं बाकी कोड के लिए जादुई रूप से UTF-8 गिनता हूं। हा। सहायता के लिए धन्यवाद।
AdmBorkBork

खुशी है कि :) मदद करने के लिए
Mego

यदि यह इतना डराने वाला नहीं लगता है, तो मैं वास्तव में एक PowerShell टर्मिनल खोलूंगा और इसे चलाऊंगा।
डेवियनमैन सेप


4

पायथन 3, 147 144 बाइट्स

lambda i=0:exec("print(' '.join(''.join('0'+bin(ord(chr(j+30)in' ,0@DL'and'o'or c))[2:]for j,c in enumerate('ilOveyOu'*8))[i:i+21]));i+=21;"*23)

इसे आइडोन पर टेस्ट करें

Initialises iको 0समारोह घोषणा में, फिर दोहराता इस 23 गुना:
रिक्त स्थान (नीचे देखें) के बिना पूरे बाइनरी स्ट्रिंग बनाता है;
उपयोग करने के भीतर से एक पंक्ति स्लाइस [i:i+21];
के साथ रिक्त स्थान सम्मिलित करता है ' '.join(...);
प्रिंट; और
वेतन वृद्धिi 21 के साथi+=21

पूरे बाइनरी स्ट्रिंग बनाने के लिए:
यह "ilOveyOu"आठ बार दोहराता है; जहां आवश्यक हो (इंडेक्स में ) के साथ
बदल देता है ; - - - यह 3 बाइट को बचाने के लिए प्राप्त किया जाता है, यह प्रत्येक चार्ट को क्रमिक रूप से परिवर्तित करता है; बाइनरी स्ट्रिंग ( ) के लिए प्रत्येक आर्डिनल कास्ट करता है ; प्रत्येक उपयोग से अग्रणी को हटाता है ; प्रत्येक के साथ एक prepends ; और पूरी चीज़ के साथ जुड़ जाता हैOo[2,14,18,34,38,46]
chr(j+30)in' ,0@DL'

'0bxxxxxxx'
'0b'[2:]
'0'
''.join(...)


आप एक भेड़ के बच्चे की जरूरत नहीं है। 137 बाइट्स के लिए करें i=0\nexec(...)या करें i=0;exec(...)
mbomb007

जब तक आपको वास्तव में पाइथन 3 की आवश्यकता नहीं होती है, आप पाइथन 2 का उपयोग कर सकते हैं और बदलने exec("...")के लिएexec"..."print(...)print...
mbomb007

3

PHP + HTML + CSS, 173 बाइट्स 367 बाइट्स

CLI केवल PHP 173 बाइट्स

$o=2841;for($i=0;$i<16;)$t.=il.Oo[$o>>$i++&1].vey.Oo[$o>>$i++&1].u;foreach(str_split($t)as$c)$x.="0".decbin(ord($c));for($i=0;$i<504;$i++){$i%21?:print"\n";echo$x[$i]." ";}}

बाउंटी स्पेक कंटेंट टाइप टेक्स्ट / html के अनुरूप

<?=gzinflate(base64_decode("jVNbDoIwELwKJ9Ctn9hwF9HGmFQwiB+GeHcRd7ezvDQEAmWmMzuT+nv7jKG4dddDc75UOW124foqu0OM+aO6h3Z/rGPd5E04vfz2C/a3gjLXXzTcxG/pSem7xzr4hxhn2BZLZvfpDjRg/3FBjBWuL78fflsWAOVl0uWk8rmG3yDCMNnMLMsshHpq0jLVQLKj6RrIbHBCYoq6WclPHHJ+PNdqjEZlpLNgbaTy2xoTHAQ3kBasKZyg3/XUDAVV5urVcDE5mQXsGWugIJqikibVmcZTJIrL0Bq3NKdgjxhak2q5ukmpWuXS+QJPEBVi52vE025VJy7Yw18u3g==");

b{all:unset;color:red} के बजाय b{all:unset;color:#911;background:red} पहले संस्करण में

PHP + HTML + CSS, 392 बाइट्स

दिल लाल + काला जो अधिक सुंदर दिखता है

शायद सीएसएस भाग में रंग संख्या को कॉल करें

<?=gzinflate(base64_decode("jVTLDoIwELyb+A8m3nXrzdrwL7xijAgG8GAI/67WdpktD00DoWWmMztLMU37LPLo3t3i+nwpNe0O+a1Purgo9KNs8vaUVkVV6+1RqVMSp9dzXT3KTNd51pv9l7xemXtEG/UeZC9yT8OdhrlFK3iLKCX4IZqEwngPcuh/vBCjPd8k34nZJxGA3TLxMip9hgWAkAP67cTyUBOhJluVXDYxWIKsBWgyRE9jEntayNL75CxdfYuRBkqB1ozBkdJvg46iRIiWNmOQCSQ6vpygIEmlqYZz1LAN1AQmhUFQUfBBhjVzbWE1SFIbNOi6NqUSHkI06JvtmjlqMzR37gSCMxEboicbG/wVpPbICzv5y8sL"));

इससे पहले कि यह अच्छा लग रहा है जोड़ें

<style>*{word-spacing:1em;}</style>

आउटपुट का पहला संस्करण यह मेरे लाइव में सबसे पुराना HTML कोड है

लाल-काला दिल

<style>*{word-spacing:1em;}</style><style>p{margin:0.2em}b{all:unset;color:#911;background:red}</style>
<p>0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1
<p>1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1
<p>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0
<p>1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0
<p>1 1 1 1 0 <b>1 1 1</b> 0 1 1 0 0 <b>1 1 0</b> 0 1 0 1 0
<p>1 1 1 <b>1 0 0 1 0 1 1</b> 0 <b>1 1 1 1 0 1 1</b> 1 0 1
<p>0 1 0 <b>1 1 0 1 0 0 1</b> 0 <b>1 1 0 1 1 0 0</b> 0 1 1
<p>0 1 1 <b>1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1</b> 0 1
<p>0 1 <b>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1</b> 1 0
<p>1 0 <b>1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0</b> 0 1
<p>0 0 1 <b>1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0</b> 1 0
<p>1 0 1 <b>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0</b> 1 1 1
<p>0 1 0 1 <b>0 1 1 0 1 0 0 1 0 1 1 0</b> 1 1 0 0 0
<p>1 1 0 1 1 <b>1 1 0 1 1 1 0 1 1 0 0</b> 1 1 0 0 1
<p>0 1 0 1 1 1 <b>1 0 0 1 0 1 1 0 1</b> 1 1 1 0 1 1
<p>1 0 1 0 1 0 1 <b>1 0 1 0 0 1 0</b> 1 1 0 1 1 0 0
<p>0 1 0 0 1 1 1 1 <b>0 1 1 1 0</b> 1 1 0 0 1 1 0 0
<p>1 0 1 0 1 1 1 1 0 <b>0 1 0</b> 1 1 0 1 1 1 1 0 1
<p>1 1 0 1 0 1 0 1 1 0 <b>1</b> 0 0 1 0 1 1 0 1 1 0
<p>0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0
<p>0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0
<p>1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1
<p>0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1

    <style>p{margin:0.2em}b{all:unset;color:red}</style>
    <p>0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1
    <p>1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1
    <p>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0
    <p>1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0
    <p>1 1 1 1 0 <b>1 1 1</b> 0 1 1 0 0 <b>1 1 0</b> 0 1 0 1 0
    <p>1 1 1 <b>1 0 0 1 0 1 1</b> 0 <b>1 1 1 1 0 1 1</b> 1 0 1
    <p>0 1 0 <b>1 1 0 1 0 0 1</b> 0 <b>1 1 0 1 1 0 0</b> 0 1 1
    <p>0 1 1 <b>1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1</b> 0 1
    <p>0 1 <b>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1</b> 1 0
    <p>1 0 <b>1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0</b> 0 1
    <p>0 0 1 <b>1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0</b> 1 0
    <p>1 0 1 <b>1 1 1 0 0 1 0 1 0 0 1 1 1 1 0</b> 1 1 1
    <p>0 1 0 1 <b>0 1 1 0 1 0 0 1 0 1 1 0</b> 1 1 0 0 0
    <p>1 1 0 1 1 <b>1 1 0 1 1 1 0 1 1 0 0</b> 1 1 0 0 1
    <p>0 1 0 1 1 1 <b>1 0 0 1 0 1 1 0 1</b> 1 1 1 0 1 1
    <p>1 0 1 0 1 0 1 <b>1 0 1 0 0 1 0</b> 1 1 0 1 1 0 0
    <p>0 1 0 0 1 1 1 1 <b>0 1 1 1 0</b> 1 1 0 0 1 1 0 0
    <p>1 0 1 0 1 1 1 1 0 <b>0 1 0</b> 1 1 0 1 1 1 1 0 1
    <p>1 1 0 1 0 1 0 1 1 0 <b>1</b> 0 0 1 0 1 1 0 1 1 0
    <p>0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0
    <p>0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0
    <p>1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1
    <p>0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1

PHP के साथ सीधे HTML पेज बनाने के लिए 375 बाइट्स

<?$o=2841;for(;$i<16;)$t.=il.Oo[$o>>$i++&1].vey.Oo[$o>>$i++&1].u;foreach(str_split($t)as$c)$x.="0".decbin(ord($c));$a=[1,9,20,28,41,49,62,82,103,125,146,168,190,212,234,256,278,300];$z=[3,11,26,34,47,55,77,98,119,140,160,179,200,220,240,260,280,300];for($i=0;$i<483;$i++)echo $i%21?"":"<p>",in_array($i-88,$a)?"<b style=color:red>":"",$x[$i],in_array($i-88,$z)?"</b>":""," ";

2
बस के color:#911;background:redसाथ की जगह color:red;यह इनाम युक्ति के अनुरूप है और साथ ही कुछ बाइट्स की बचत करता है।
एमिग्ना

3

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

'uil','vey'*8|%{$s+=$_+'oOOooOOOooOoOOO'[$i++]}
-join(8..490|%{(+$s[$_-shr3]-shr(7-$_%8))%2
' 
'[!(++$j%21)]})

स्पष्टीकरण:

स्क्रिप्ट की पहली पंक्ति सबस्ट्रिंग लेती है और Oउनके बीच एक अक्षर डालती है। परिणाम स्ट्रिंग है uiloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOvey। ध्यान दें कि पहले और अंतिम अक्षर निरर्थक हैं।

लूप (8..490)स्ट्रिंग के पात्रों से सभी आवश्यक बिट्स के साथ-साथ एक स्थान या एक पंक्ति फ़ीड को आउटपुट करता है ।

वैलेंटाइन पत्र के प्राप्तकर्ता की पहेली

यह देखा जा सकता है कि छोटे और बड़े प्रतीक Oस्वयं थोड़ा सा एन्कोडिंग बनाते हैं। 15 प्रतीक (बिट्स) हैं। बिट पर ASCII वर्ण प्राप्त करने के लिए केवल एक विभाजन है: oOOooOOO+ ooOoOOO[o]। हम एक छोटे से जोड़ने के लिए किया था oके बजाय 0अंत में। यह ASCII प्रतीक हैं:g.

यह रहस्यमय कौन है g.?


2

PHP, 121 बाइट्स

for($n=5682;$i++<60;)for($b=8;$b;)$p.=(1&ord(~$i&3||($n/=2)&1?uiloveyo[$i%8]:O)>>--$b)." ";echo wordwrap($p."0 1 1",42);

टूट - फूट

$n=2*bindec("000101100011001"); // where to NOT replace o with O
for($i=1;$i<61;$i++)            // loop $i from 1 to 60
{
    $c=
        ~$i&3                       // $i%4!=3
        ||
        ($n/=2)&1                   // or (1. shift $n, 2. test bit 0)
        ? "uiloveyo"[$i%8]          // yes: character from string
        : "O"                       // no: uppercase "O"
    ;
    for($b=8;$b--;)                 // run from bit 7 to bit 0
        $p.=(1 & ord($c)>>$b). " ";     // append 1 or 0 plus space
}
$p.="0 1 1";                    // append the missing three bits
echo wordwrap($p,42);           // wrap at column 42 (actually 41; 42 is space -> gets cut)

2

q / kdb +, 107 93 85 55 53 बाइट्स

उपाय:

23 21#0 1(,/)0b vs'@[61#"ilOveyOu";0x020e1222262e;_:]

उदाहरण:

q)23 21#0 1(,/)0b vs'@[61#"ilOveyOu";0x020e1222262e;_:]
0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1
1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1
1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 0
1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0
1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0
1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1
0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1
0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1
0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0
1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1
0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0
1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0 1 1 1
0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0
1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1
0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 1
1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0
0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0
1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 1
1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0
0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0
0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 1 1 0
1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1
0 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1

स्पष्टीकरण:

23 21#0 1(,/)0b vs'@[61#"ilOveyOu";0x020e1222262e;_:] / the solution
                   @[             ;              ;  ] / apply[input;indices;function]
                                                  _:  / lowercase
                                   0x020e1222262e     / 2 14 18 34 38 46 represented in hex
                    61#"ilOveyOu"                     / 61 take "ilOveyOu" (wraps around)
             0b vs'                                   / convert into 8-bit representation
         (,/)                                         / flatten
      0 1                                             / index into 0 / 1 (convert from booleans)
23 21#                                                / reshape

टिप्पणियाँ:

  • Ngn करने के लिए -2 बाइट्स धन्यवाद!

1

पायथन 3, 199 बाइट्स:

z='01111011101'
a='011010010110110001'
b=z+'10011001010111100101'
[print(' '.join(''.join([a+i[0]+b+i[1]+z+'01'for i in'10 01 10 00 11 01 00'.split()])+a+'0'+b[:16])[i:i+41])for i in range(0,966,42)]

1

पायथन 3, 170 बाइट्स

from textwrap import*
print('\n'.join(' '.join(list(i))for i in wrap(''.join(bin(ord(i)+256)[3:]for i in (7*"il%svey%su")%(tuple("oOOooOOOooOoOO"))+"ilOv"),21))+" 0 1 1")

"Il% sway% su" का एक स्ट्रिंग पुनरावृत्ति करता है, इसे कई बार आवश्यक संख्या दोहराता है, फिर सभी o के उप में एक tuple का उपयोग करता है। यह फिर इसे बाइनरी में कनवर्ट करता है, टेक्स्टवैप मॉड्यूल का उपयोग करता है, नए के अपने आइटम को कनवर्ट करता है। लिस्ट टू लिस्ट, स्पेस के साथ जुड़ता है, तो 0 1 1 को जोड़ देता है क्योंकि यह एक स्टब या कुछ और लगता है


1

गणितज्ञ, 123 बाइट्स (रंग के साथ 275)

मुझे यकीन नहीं है कि अगर Gridएक स्ट्रिंग के आउटपुट का उपयोग करना ठीक है (यदि नहीं तो यह एक गैर-प्रतिस्पर्धा वाली प्रविष्टि है)।

B / W

Grid@Partition[ReplacePart[PadLeft[{},483,IntegerDigits[36^^nz4sp78k5qyb,2,64]],
Thread[51+32{0,1,4,5,6,9,11,12,13}->0]],21]

यहाँ छवि विवरण दर्ज करें

रंग

Grid[Partition[ReplacePart[PadLeft[{},483,IntegerDigits[36^^nz4sp78k5qyb,2,64]],
Thread[51+32{0,1,4,5,6,9,11,12,13}->0]],21],ItemStyle->{{},{},Thread[Join@@MapIndexed[
Thread@{Range@@#,2+First@#2}&,Thread[Partition[IntegerDigits[36^^k32b741shmsoiwed4vnakt],
17]+{0,10}]]->Red]}]

यहाँ छवि विवरण दर्ज करें


क्या gridसादे पाठ से परिणाम को कॉपी / पेस्ट करना और नोटपैड में पेस्ट करना संभव है? वो कैसा दिखता है? अंतरिक्ष अलग (एकल स्थान) नई कहानियों के साथ, जैसा कि आंकड़ा दिखाता है?
स्टीवी ग्रिफिन

1

रूबी 142 बाइट्स

(('iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv'.unpack('B*')[0]+'011').split(/(.{21})/)-['']).map{|i|puts(i.chars.join(' '))}

(थोड़ा और अधिक) कानूनी रूप से:

(('iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv'.unpack('B*')[0]+'011') 
  # unpack turns it into a binary string, [0] takes the first element, and then we add on the trailing 011
.split(/(.{21})/) -['']) 
  # split it every group of 21 characters and remove the empty strings that are also included
.map { |i| puts(i.chars.join(' ')) } 
  # take each string of 21 characters, get its chars and join them with an empty string for formatting (puts takes care of the newlines)

मुझे अभी तक रूबी में मूल पाठ को अधिक संक्षिप्त रूप में संघनित करने का कोई तरीका नहीं मिला है - इसमें कुछ महान स्ट्रिंग हेरफेर फ़ंक्शन हैं, लेकिन मैंने जिन तरीकों की कोशिश की है वे स्ट्रिंग की तुलना में अधिक वर्णों का उपयोग करते हैं। किसी भी संकेत की सराहना की, यह StackOverflow पर मेरा पहला कोड गोल्फ है!


प्रोग्रामिंग पहेलियाँ और कोड गोल्फ स्टैक एक्सचेंज में आपका स्वागत है! क्या आपने स्ट्रिंग को एक चर में स्थापित करने की कोशिश की है (जैसेa ) पर , फिर कर रहे हैं a+a+a...? इससे भी बेहतर, अगर रूबी स्ट्रिंग्स के गुणन का समर्थन करता है a*count,!
wizzwizz4

@ wizzwizz4, स्ट्रिंग शुद्ध स्ट्रिंग पुनरावृत्ति नहीं है। :) (हालांकि ऐसा करने के लिए बेहतर तरीके होने की संभावना है, लेकिन मुझे नहीं लगता a+a+aकि यह तरीका है)
स्टीवी ग्रिफिन

मुझे पता है! सभी लोअर-केस लघु संस्करण बनाएं, इसे दोहराएं, फिर एनटी oको एक पूंजी के साथ बदलें O!
wizzwizz4

1

जंग, 195 बाइट्स

||for(c,i)in"iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOve".bytes().fold(String::new(),|a,c|format!("{}0{:b}",a,c)).chars().zip(1..484){print!("{}{}",c,if i%21!=0{' '}else{'\n'})}

Ungolfed:

fn main(){
    // convert bytes of the string to binary numerals.
    let s = "iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOve"
        .bytes()
        .fold(String::new(),|a,c|format!("{}0{:b}",a,c));

    // print them over the range with newlines/spaces as appropriate
    for(c,i) in s.chars().zip(1..484) {
        print!("{}{}",c,if i%21!=0{' '}else{'\n'})
    }
}

1

सी (जीसीसी) , 102 बाइट्स

f(i){for(i=0;i<483;)printf("\n%2d"+!!(i++%21),(i/8%4^2|35609>>i/32&1?"iloveyou"[i/8%8]:79)>>7-i%8&1);}

मंद होना

f(i){
for(i=0;i<483;)         Loop through bits.
printf("\n%2d"
+!!(i++%21),            Decide if newline in format string should be skipped.
(i/8%4^2|               Are we at a non-'o' letter?
                        (They occur every 4th letter, starting at index 2.)
35609>>i/32&1?          Check with magic number if the 'o' should be capital.
"iloveyou"[i/8%8]:      If not-'o' or not capital, use current letter.
79)                     Otherwise, use the letter 'O'.
>>7-i%8&1               Extract bit to write.
);}

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



1

पायथ, 47 बाइट्स

jPcjdsm+0.BCdtPs.i*8c"uil vey"dmr\o!djC\䱨2 42

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

jPcjdsm+0.BCdtPs.i*8c"uil vey"dmr\o!djC\䱨2 42   Implicit: d=" "
                    c"uil vey"d                  Chop "uil vey" on spaces, to yield ["uil" "vey"]
                  *8                             Repeat the above 8 times - {1}
                                      C\䱨       Character code of 䱨, yields 19560
                                     j    2      Convert the above to base 2
                               m                 Map the digits of the above, as d, using:
                                r\o!d            If d is 0, yield "O", otherwise "o" - {2}
                .i                               Interleave {1} with {2}
               s                                 Concatenate into a string
                                                   This yields "uiloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOvey"
             tP                                  Remove first and last characters of the above
      m                                          Map each character, as d, using:
           Cd                                      Get character code
         .B                                        Convert to binary string
       +0                                          Prepend 0 (all binary strings will be length 7, so this pads to length 8)
     s                                           Flatten the result of the map
   jd                                            Join on spaces
  c                                        42    Chop into strings of length 42
 P                                               Discard the last, partial, string
j                                                Join on newlines, implicit print


0

सी ++ 11, गैर-प्रतिस्पर्धात्मक, 726 687 636 बाइट्स (* NIX या W10 सीमा 2 आवश्यक)

#include <iostream>
#include <string>
#ifdef  _WIN32
#include <Windows.h>
#endif
using namespace std;int main() {
#ifdef  _WIN32
HANDLE h=GetStdHandle(-11);DWORD m;GetConsoleMode(h,&m);SetConsoleMode(h,m|0x04);
#endif
cout<<"\033[47m\033[30m";string d("4fup8y8hihjyl9g1ifh9wpc4f52l5a8giosim2isj80xff814db9wmf958x4zlbl58x4zlbl6zxgjt9whbcz4mu91r0j5c4kfq48uxw53w1zvpdshv6ylrnl3t38qyiteyw0lphs3kx59vf4ezay145thrt7lkb80w83nz10ih27f77p0820wzr9");for(int s=0;s!=184;s+=8){unsigned long long n=stoull(d.substr(s,8),NULL,36),i=3;for(int p=40;p!=-2;p-=2){int r=(n&(i<<p))>>p;printf(r>1?"\033[31m %d\033[30m":" %d",r>1?r-2:r);}puts("");}return 0;}

मुझे पता है कि यह बेहतर तरीके से गोल्फ हो सकता है। मैं एक लघु सी + + जवाब लानत देखना चाहता हूँ!

जब मैंने हार्ट सेक्शन को एन्कोडिंग किया था तब मैंने भी शायद कुछ गलतियाँ की थीं।

उत्पादन (रंग तय):

यहाँ छवि विवरण दर्ज करें


मैंने मान लिया कि केवल हृदय खंड में संदेश था, इसलिए मैंने पूरी बात को एनकोड किया। कहने की जरूरत नहीं है कि मुझे एक बेवकूफ की तरह महसूस हुआ जब मैंने चुनौती को फिर से जारी किया और एएससीआई में आउटपुट की पहली कुछ पंक्तियों का परीक्षण किया।

0

पायथन, 473 बाइट्स

रंग!

r=str.replace;print r(r(r(r(r(r(r(r("""
jh0k1k1k0jk1
ikik1kjk0h1
ik0hjikih
k1h0k1k1k00k0
i1ksi1ejk0s1ke0h
i1sk0kie0si1kiek1
0ks1hje0s1k1k0ej1
j1s1kik1kjkjej
jsik0hjikiek
ksk1h0k1k1k0ej
0jsikik1kjk0ek
k1sik0hjikei1
0k1sjh0k1ke1k00
1kis1kik1k0e1kj
0ki1sk0k1k1eiki
hk1sh0ke1k1k0
0kji1sj1ke1kjk0
hi1ks0ke1ki1k1
1hk1ks1e00k1k1k
00kjikik1kjk
0hi1k0hjik
ihk1h0k1ki
000kjikik1kj1
""",'h','1010'),'i','11'),'j','01'),'k','10'),'1','1 '),'0','0 '),'s','\x1b[0;40;31m'),'e','\x1b[0m')

1
str.translateएक बेहतर विकल्प हो सकता है
Mego

0

FEU , 360 बाइट्स

m/a/0 1 /b/1 0 /c/1 1 /d/0 0 /e/0 /f/1 /g
__DATA__
afaeaafabeab1
cfacababaae1
cbaaeacfaca0
fafaeaafabeae0
ccacababaa0
cfbaafacfafb1
aafaeaafabea1
acfacababae1
acbaaeacfac0
faafaeaafabd1
eacfacababa0
facbaaeacfaf1
aaafaeaafabe0
cacfacababe1
aacbaafacfa1
faaafaeaafab0
aeacfacabab0
faacbaafacb1
caaafaeaafaf0
eaeacfacabaf0
aaacbaaeacf0
cfaaafaeaafa1
daeacfacaba1

बस मूर्खतापूर्ण संपीड़न

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