डबल-ड्यूटी क्वीन: क्वीन! DlroW, olleH


13

एक प्रोग्राम लिखें जो रन करते समय अपने स्वयं के सोर्स कोड को आउटपुट करेगा, और कुछ नहीं। आसान लगता है, है ना?

पकड़ यह है कि जब स्रोत कोड उलट जाता है, तो आपके प्रोग्राम को "हैलो, वर्ल्ड!" बिल्कुल, उद्धरण के बिना।

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

संपादित करें : आपकी रानी एक उचित रानी होनी चाहिए।



4
@ उचित होने के लिए, यह सामान्यीकृत क्वीन की तरह नहीं है जो मैं वहां बात कर रहा हूं, क्योंकि यह "आपके सोर्स कोड का प्रिंट एक्स नहीं है"। यह कहा कि यह शायद दूसरे से बहुत अलग नहीं खेलेंगे "जब आप कार्यक्रम को उलट देते हैं ..." हमारे पास चुनौतियां होती हैं।
मार्टिन एंडर

1
@ मार्टिनबटनर यह आपके द्वारा बताई गई चुनौतियों के समान है जो मुझे लगता है कि वही तर्क लागू होता है।
मेगो

जवाबों:


8

वाई, 19 बाइट्स

Upxp"!dlroW ,olleH"

UUशुरुआत के साथ एक स्ट्रिंग को पकड़ता है जब तक कि अगली Uमुलाकात नहीं होती है, इस मामले में, स्रोत कोड। pआइटम प्रिंट करता है, और xएक समाप्ति लिंक है। जब उलटा होता है, तो यह दिखता है:

"Hello, World!"pxpU

यह स्ट्रिंग को पकड़ता है और इसके साथ प्रिंट करता है p, फिर से प्रोग्राम को समाप्त करता है x

यहाँ यह कोशिश करो!


4
UUस्पष्ट रूप से धक्का ? ಠ_ಠ
Sp3000

1
@ Sp3000 इसे बनाया गया है ताकि कार्यक्रम खुद को संशोधित कर सके। अधिक तकनीकी रूप से, Uकमांड "चेन लिंक कैप्चर कमांड" है। यह क्विनिंग के लिए नहीं बनाया गया है, लेकिन यह मुझे क्विंग के लिए इसका इस्तेमाल करने से नहीं रोकेगा। : पी
कॉनर ओ'ब्रायन

1
मुझे यकीन नहीं है कि यह एक उचित रानी के रूप में गिना जाता है। हमारी परिभाषा को प्रोग्राम के एक भाग की आवश्यकता होती है जो प्रोग्राम के एक अलग हिस्से कोU... एनकोड करता है , लेकिन सिर्फ एनकोड करता है U...
डेनिस

@ डेनिस एनकोड को परिभाषित करता है? मुझे लगा कि pबिट ने आउटपुट किया है, जो एन्कोडिंग का हिस्सा था।
कॉनर ओ'ब्रायन

1
मैं ले लिया एनकोड कुछ है कि उत्पादन उत्पन्न करता है के रूप में, तो pऔर xगिनती नहीं होगी। उदाहरण के लिए, सबसे छोटी एसएमबीएफ क्वीन को अभी भी एक धोखा देने वाला क्वीन माना जाता है, भले ही कोड को इसे प्रिंट करना हो। हालांकि मार्टिन से स्पष्टीकरण मांगने लायक हो सकता है।
डेनिस

20

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

f=_=>/\//g&&"f="+f||"!dlroW ,olleH">=_

औंधा

_=>"Hello, World!"||f+"=f"&&g//\/>=_=f

व्याख्या

जब उलटा होता है, तो यह एक अनाम फ़ंक्शन बन जाता है जो स्ट्रिंग लौटाता है Hello, World!

रेग्क्स /\//gउल्टा होने पर एक टिप्पणी बन जाता है, जो >=_=fउल्टे कोड में वाक्यविन्यास को अमान्य घोषित करने की अनुमति देता है ।


यह बहुत स्मार्ट है। :) मैंने ऐसा नहीं सोचा होगा।
ericw31415

3
+1 केवल चमकदार आंखों के लिए =_=:।
डारेल हॉफमैन

6

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

trela=a=>alert("trela="+trela+"\ntrela\n``")//
`!dlroW ,olleH`
trela
``

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

पंक्ति 1 फ़ंक्शन को परिभाषित करती है trelaकि जब रन प्रोग्राम के स्रोत कोड को आउटपुट करता है। लाइन 2 एक बिना तार वाला स्ट्रिंग है, कुछ भी नहीं करता है। trelaटेम्प्लेट स्ट्रिंग सिंटैक्स का दुरुपयोग करते हुए लाइन्स 3 और 4 कॉल ।

उलट:

``
alert
`Hello, World!`
//)"``n\alertn\"+alert+"=alert"(trela>=a=alert

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

लाइन 1 एक बिना तार वाला स्ट्रिंग है, कुछ भी नहीं करता है। लाइनें 2 और 3 प्रिंट करने के लिए टेम्पलेट स्ट्रिंग सिंटैक्स का दुरुपयोग करते हैं Hello, World!। पंक्ति 4 एक टिप्पणी है।


मुझे लगता है कि जावास्क्रिप्ट कुछ सिंटैक्स के साथ लगता है। ठीक है, कम से कम अजगर से अधिक है। यह अच्छा है।
आर। कप

क्या खाली ``अनावश्यक है?
3

@EasterlyIrk नहीं, trelaफॉरवर्ड संस्करण में फंक्शन (जो कि क्वीन प्रिंट करता है) को कॉल करना आवश्यक है
3

@ जिक्र ओह, मुझे नहीं पता ``था कि यह तर्क था। ठंडा।
3

2
मुझे ऐसा लग रहा है कि मुझे trelaइधर-उधर देखने की आदत होनी चाहिए ...> _>
Conor O'Brien



2

RETURN , 94 बाइट्स

"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'

उलट:

'!'d'l'r'o'w' ','o'l'l'e'H' %,,,,,,,,,,,,,¤¤43"'!'d'l'r'o'w' ','o'l'l'e'H' %,,,,,,,,,,,,,¤¤43"

Try it here.

STDOUT में आउटपुट। जब तक मुझे एक बेहतर क्वीन फ्रेमवर्क नहीं मिल जाता, तब तक यह करना होगा।

व्याख्या

"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'"

इसमें क्विन स्ट्रिंग शामिल है। रिवर्स में, यह स्टैक पर धकेल दिया जाता है लेकिन आउटपुट नहीं किया जाता है।

34¤¤,,,,,,,,,,,,,

यह स्टैक के लिए एक उद्धरण चार्ट को धक्का देता है और परिणाम को दो बार आउटपुट करता है जब तक कि आउटपुट के लिए कुछ भी नहीं छोड़ा जाता है। रिवर्स में, यह स्टैक पर पहले से ही चार्जकोड प्रिंट करेगा।

% 'H'e'l'l'o',' 'w'o'r'l'd'!'

यह शीर्ष स्टैक आइटम को पॉप करता है (रिवर्स में, यह एक स्पेस चार को पॉप करेगा) और स्टैक को चार्जकोड की एक श्रृंखला को धकेलता है (रिवर्स में, ये चार्कोड बाद में की सीरीज़ द्वारा मुद्रित किया जाएगा। , 'एस' )।


अगर यह वास्तव में पागल कोड है, या सिर्फ सामान्य RETURN कोड ._ है तो मैं नहीं बता सकता।
डाउनगोट

दोनों; _; मैं हर आदमी को रोता हूं
मामा फन रोल

2

विखंडन 2, 42 बाइट्स

इस उत्तर में @ मार्टिनबटनर द्वारा एक उत्कृष्ट क्वीन का बेशर्म अनुकूलन

'!+O!'!d'!l'!r'!o'!W'! '!,'!o'!!l'!e'!H'R"

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

और उलटा हुआ

"R'H!'e!'l!!'o!',!' !'W!'o!'r!'l!'d!'!O+!'

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

क्वीन संस्करण में परमाणु Rशीर्ष पर शुरू होता है । "शुरू होता है जो अगले करने के लिए लपेटता मोड प्रिंट "(ही)। यह प्रिंट के अलावा सब कुछ प्रिंट करता है "'!+परमाणु को चार पर सेट करें "Oइसे प्रिंट करता है और कार्यक्रम को समाप्त करने वाले परमाणु को नष्ट कर देता है।

उलटा संस्करण Rफिर से शुरू होता है और प्रत्येक वर्ण के Hello, Worldलिए परमाणु सेट करता है और परमाणु !को नष्ट किए बिना इसे प्रिंट करता है। अंतिम चरित्र के !लिए प्रिंट Oपरमाणु को नष्ट कर देता है।


1

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

$=_=>`$=${$};$()//"!dlroW ,olleH"`;$()//"!dlroW ,olleH"

काफी सरल, वास्तव में।


0

पायथन 2, 131 बाइट्स

आगे:

print(lambda x:x+repr(x)+")#'!dlroW ,olleH' tnirp")('print(lambda x:x+repr(x)+")#\'!dlroW ,olleH\' tnirp")(')#'!dlroW ,olleH' tnirp

उल्टा:

print 'Hello, World!'#)'()"print '\Hello, World!'\#)"+)x(rper+x:x adbmal(tnirp'()"print 'Hello, World!'#)"+)x(rper+x:x adbmal(tnirp

पहली छमाही एक पंक्ति की एक पंक्ति है, इसके बाद #एक टिप्पणी को सरल आधे हिस्से से पहले आधे हिस्से को अलग करना है।


अनुकूल इस अजगर Quine देता है_='_=%r;print _%%_#"!dlroW ,olleH"tnirp';print _%_#"!dlroW ,olleH"tnirp
Sp3000

0

सी, 108 बाइट्स

char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";main(){printf(s,34,s,34);}//};)"!dlroW ,olleH"(stup{)(niam

C99 मुझे लगता है?
नील

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