गोल्फ एक कम्प्यूट दुभाषिया


9

परिचय

कंप्यूट एक गूढ़ चुटकुला भाषा है।

से esolangs प्रविष्टि:

गणना के लिए कोई आवश्यक वाक्यविन्यास नहीं है और किसी भी और सभी समस्याओं को हल करने की शक्ति है। यह किसी भी मानव भाषा (अंग्रेजी, स्पेनिश, लैटिन, आदि), किसी भी प्रोग्रामिंग भाषा (C ++, जावा, ब्रेनफक, आदि), या किसी भी प्रकार के डेटा की व्याख्या करने के लिए पर्याप्त स्मार्ट है, जिसके बारे में आप सोच सकते हैं। केवल गिरावट यह है कि आई / ओ बिल्कुल नहीं है।

कुछ उदाहरण कार्यक्रम

Hello World

एक बुनियादी हैलो वर्ल्ड कार्यक्रम

What is love?

निर्धारित करता है कि प्यार था (बच्चा मुझे चोट नहीं पहुंचाता)।

When will we ever graduate?

बीटा से बाहर निकलने के लिए इस साइट की सटीक तारीख निर्धारित करता है।

चुनौती

आपका कार्य पूर्ण कम्प्यूट दुभाषिया लिखना है। यह बहुत कठिन लगता है, लेकिन ध्यान रखें कि कंप्यूट में पूरी तरह से I / O नहीं है। तो आपका दुभाषिया इसके बाद इनपुट प्रोग्राम और आउटपुट में हर लाइन के लिए एक सेकंड सोएगा \n\nDone.(यह केवल I / O चीज का अपवाद नहीं है)।

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

नियम

  • इनपुट में एक से अलग कई लाइनें हो सकती हैं \n। हमेशा कम से कम एक लाइन होगी।
  • आधिकारिक कार्यान्वयन के विपरीत आपको इनपुट के रूप में एक फ़ाइल नहीं लेनी है। आप किसी भी रूप में इनपुट प्रोग्राम को अपने इच्छित प्रोग्राम में ले सकते हैं।
  • केवल आउटपुट की अनुमति है \n\nDone.। अनुगामी न्यूलाइन की अनुमति है।
  • कार्य या पूर्ण कार्यक्रम की अनुमति है।
  • इनपुट / आउटपुट के लिए डिफ़ॉल्ट नियम
  • मानक खामियां लागू होती हैं।
  • ये है , इसलिए सबसे कम बाइट-काउंट जीतता है। टाईब्रेकर पहले जमा करना है।

1
अनिवार्य रूप से मुझे यह
लुइस मेंडो

14
जब हम स्नातक करने जा रहे हैं तो हमें यह बताने के लिए किसी कार्यक्रम की आवश्यकता नहीं है। हम पहले से ही जानते हैं कि यह 26 वां है।
दरवाज़े

7
@ डॉर्कनोब, किस सदी का?
msh210

1
@DenkerAffe मुझे लगता है कि आपको यह स्पष्ट करना चाहिए कि चुनौती भाषा से बिल्कुल मेल नहीं खाती है।
पुरकाकूदरी

9
@ msh210, नहीं, वह सदी है।
पीटर टेलर

जवाबों:


5

05AB1E , 16 15 14 13 बाइट्स

कोड:

[Ig>#w’

D€µ.

स्पष्टीकरण:

[        # Starts an infinite loop
 I       # Input string
  g>     # Length + 1
    #    # If equal to 1, break out of the loop
     w   # Wait 1 second

यह हिस्सा इसके बराबर है "\n\nDone.":

      ’  # Push "\n\nDone." on top of the stack

D€µ.     # The compressed string is ended implicitly
         # Implicit, print top of the stack

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

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


4

ओरेशन , 117 बाइट्स

I need time!
To iterate, input().
Inhale.
Now sleep(1).
Backtracking.
Boring,
boring.
Listen!
Capture Done.
Carry on!

आइए इसकी व्याख्या करते हैं। सबसे पहले, यह करने के लिए transpiles:

import time
while input():
    time.sleep(1)
print("\n")
print("\n")
print("Done")

अभी भी उलझन में? आइए डालते हैं इसे इस तरह:

I need time!

मॉड्यूल आयात करता है time

To iterate, input().

यह थोड़ी देर का लूप है जिसकी स्थिति है input()

Inhale.

हमारे कार्यक्रम को अब सांस लेने की जरूरत है, और inhale, कम स्वस्थ होने के दौरान, गोल्फ खिलाड़ी है।

Now sleep(1).

Nowसबसे हाल ही में आयात किए गए मॉड्यूल .sleep(1)को लें और इसे अपग्रेड करें।

Backtracking.

जबकि लूप से बाहर निकलें।

Boring,
boring.

दो नए अंक प्रिंट करता है।

Listen!

एक स्ट्रिंग कैप्चर करना शुरू करता है।

Capture Done.

Done.पकड़े गए स्ट्रिंग में जोड़ता है।

Carry on!

कैप्चरिंग स्ट्रिंग को खत्म करता है।


3
मजेदार भाषा लगती है। क्या आप दुभाषिया + डॉक्स के लिए एक लिंक जोड़ेंगे?
डेनकर

@DenkerAffe डॉक्स और दुभाषिया दोनों को मैं सिर्फ मेरे द्वारा संपादित शीर्षक में पाया जा सकता है।
कॉनर ओ'ब्रायन

@ धन्यवाद, इस पर एक नज़र रखना चाहिए। :)
डेनकर

4

जावास्क्रिप्ट शैल REPL, 38 बाइट्स

एक फ़ंक्शन के रूप में जो प्रोग्राम को एक स्ट्रिंग तर्क के रूप में स्वीकार करता है और परिणाम देता है:

s=>sleep(s.split`
`.length)||`

Done.`

29 बाइट्स यदि फ़ंक्शन लाइनों के एक सरणी के रूप में अपने इनपुट को स्वीकार कर सकता है, या यदि उसे प्रति सेकंड 1 सेकंड सोना चाहिए:

s=>sleep(s.length)||`

Done.`

34 बाइट्स अगर यह भी एक कार्यक्रम की तरह होना चाहिए और स्पष्ट रूप से प्रिंट किया जाना चाहिए:

s=>sleep(s.length)||print`

Done.`

यह मेरे लिए स्टैंडअलोन स्पाइडरमोंकी दुभाषिया में काम करता है।


4

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

a=>setTimeout(x=>alert`

Done.`,a.length*1e3)

एक बाइट को बचाने के लिए ӍѲꝆΛҐӍΛП to का धन्यवाद

इनपुट के रूप में एक सरणी मानता है।

जैसा कि youП both और edc65 दोनों ने बताया है कि आप निम्नलिखित लिख सकते हैं, लेकिन यह किसी भी बाइट को नहीं बचाएगा:

a=>setTimeout("alert`\n\nDone`",a.length*1e3)

1
1e3से बेहतर है 10e2
मामा फन रोल

इसके अलावा, एरो फंक्शन को एक स्ट्रिंग में बदलें। Codegolf.stackexchange.com/a/60960/41247
मामा फन रोल

@ ӍѲꝆΛҐӍΛПӍѲꝆΛҐӍΛ मुझे यकीन नहीं है कि काम करेगा। चूँकि उसके पास पहले से ही एक टेम्पलेट स्ट्रिंग है, इसलिए आपको इसे
बचाना

@ ӍѲꝆΛҐӍΛПӍѲꝆΛҐӍΛ 1e3 is better than 10e2विश्वास नहीं कर सकता कि मैं चूक गया।
andlrc

@ edc65 आप इसके बारे में बात करने वाले पहले नहीं हैं, 65ПҒЦꝆ ने भी इसका उल्लेख किया है। :-)
andlrc

4

बैश + कोरुटिल्स, 28

sleep `wc -l`
echo "

Done."

हर पंक्ति के लिए 1 सेकंड सोता है। wc -cहर बाइट के लिए या wc -mहर चरित्र के बजाय उपयोग करें ।


1
वहाँ एक अतिरिक्त newline नहीं होना चाहिए?
user253751

@ मिनीबिस हां - आप सही हैं - फिक्स्ड।
डिजिटल ट्रामा

3

पायथ, 15 14 बाइट्स

.dcl.z1b"Done.

(आप इसे ऑनलाइन आज़मा सकते हैं , लेकिन ऐसा करने का वास्तव में कोई मतलब नहीं है।)


आपको उस अवधि के बाद की याद आ रही है Done(जो किसी और उत्तर पर किसी को बताए जाने के बाद से बहुत मज़ेदार है): पी
डेनकर

@DenkerAffe धन्यवाद। (बाइट की गिनती सही थी, हालाँकि।)
पुरकाकूदरी

@ मुडीफिश थैट्स चुनौती को क्या कहते हैं। आधिकारिक दुभाषिया चार-वार हो जाता है, लेकिन मैंने इसे प्रतीक्षा समय से बचने के लिए लाइनों में बदल दिया।
Denker

@DenkerAffe ठीक है अब हमारी प्रविष्टियाँ हमारे बिल्कुल समान हैं। किसके पास रखूं? मैं Pietu1998 को मानने जा रहा हूं क्योंकि वे
ब्लू

क्या बी जरूरी है?
बुसुकुआन

2

पर्ल, 21 + 1 = 22 बाइट्स

sleep 1}{$_="\n\nDone."

-pध्वज की आवश्यकता है :

$ perl -pe'sleep 1}{$_="\n\nDone."' <<< $'a\nb\nc'


Done.              

2

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

import time
while input():time.sleep(1)
print("\n\nDone.")

बस यह बताना चाहते हैं, यह अजगर 2 में 2 बाइट्स छोटा होगा, "\ n \ n" प्रिंट करें
रैंडम गाइ

अरे हाँ, मैं भूल गया ... क्षमा करें।
रैंडम गाइ

2

MATL , 17 बाइट्स

10c'Done.'`jt?1Y.

इनपुट के अंत को चिह्नित करने के लिए एक अनुगामी खाली लाइन (न्यूलाइन के बाद) का उपयोग किया जाता है। MATL में इसकी आवश्यकता है क्योंकि इनपुट संवादात्मक है और प्रत्येक इनपुट एक नई रेखा के साथ समाप्त होता है।

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

10c           % push newline character
'Done.'       % push string
`             % do...while
  j           % input string
  t           % duplicate
  ?           % if non-empty
    1Y.       % pause for 1 second
              % loop condition is the current string. If non-empty: next iteration
              % If empty: exit loop and print stack contents. There are two strings
              % and a newline is printed after each, so the desired output is obtained

क्या आप के बाद की अवधि याद आ रही है Done?
पुरकाकूदरी

@ Pietu1998 वूप्स। सही किया। धन्यवाद!
लुइस मेन्डो

2

QBasic, 54 बाइट्स

LINE INPUT x$
IF x$=""GOTO 1
SLEEP 1
RUN
1?
?
?"Done."

उपयोगकर्ता इनपुट से लाइन द्वारा प्रोग्राम लाइन लेता है, एक रिक्त लाइन द्वारा समाप्त किया जाता है। प्रत्येक पंक्ति को पढ़ने के बाद 1 सेकंड रोककर, हालांकि, संभवत: आत्मा के पत्र का पालन करता है। (विनिर्देश तकनीकी रूप से यह नहीं कहता है कि इनपुट पूरा होने के बाद सभी को रोकना पड़ता है।) यदि इसे बहुत छायादार माना जाता है, तो यहां 64-बाइट संस्करण है जो पूरे कार्यक्रम के बाद इनपुट हो जाता है।

DO
LINE INPUT x$
IF x$=""GOTO 1
t=t+1
LOOP
1SLEEP t
?
?
?"Done."

फ़ाइल I / O (87 बाइट्स) के साथ बोनस संस्करण:

INPUT f$
OPEN f$FOR INPUT AS 1
1LINE INPUT #1,x$
SLEEP 1
IF 0=EOF(1)GOTO 1
?
?
?"Done."

1

रूबी, 32 बाइट्स

$<.map{sleep 1}
puts"\n\nDone."

स्टड से पढ़ता है।


1

OCaml, 61 बाइट्स

fun a->List.iter(fun _->Unix.sleep 1)a;print_string"\n\nDone"

माना कि इनपुट एक सूची है।


0

जेली , 12 बाइट्स (गैर-प्रतिस्पर्धात्मक)

ỴLœS@⁷⁷“ẋḲp»

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

नोट: कृपया संपीड़ित स्ट्रिंग में डालने का सुझाव दें ⁷⁷, यह इसे लंबे समय तक बनाए रखेगा ( “¡OÑL[Ṁ»)।

स्पष्टीकरण:

ỴLœS@⁷⁷“ẋḲp» Main link. Arguments: z.
ỴL           The number of lines in z. (x)
     ⁷       Newline ("\n") (y)
  œS@        After sleeping for x seconds, return y.
      ⁷      Newline ("\n")
       “ẋḲp» Compressed string ("Done.")

इस वजह से गैर-प्रतिस्पर्धात्मक है œS
आउटगॉल्फ

0

awk, 34 बाइट्स

END{print"\nDone."|"cat;sleep "NR}

जैसा कि कोई I / O नहीं है और अंतिम परिणाम अपरिहार्य है, Done.भाग शुरुआत में सही आउटपुट होता है।

$ awk 'END{print"\nDone."|"cat;sleep "NR}' file

जागने में सोने का एकमात्र तरीका प्रणाली का उपयोग करना है sleep। इसे लागू करने का सबसे छोटा तरीका है print|"sleep "NRऔर हम उस बेकार को भी गाली दे सकते हैं print

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