ध्रुवीय भालू, ध्रुवीय भालू, तुमने क्या सुन रहे हो?


50

बच्चों की पुस्तक पोलर बियर, पोलर बियर, व्हाट डू यू हियर का पाठ ? एक बहुत ही सरल पैटर्न है। आप परिचयात्मक प्रोग्रामिंग अवधारणाओं को पढ़ाने के लिए पाठ का उपयोग कर सकते हैं।

मेरा बेटा इस विचार से जल्दी ऊब गया था, इसलिए मैंने इसके बजाय कुछ गोल्फ खेलने का फैसला किया।

चुनौती

अपनी पसंद की प्रोग्रामिंग भाषा में, सबसे छोटा प्रोग्राम संभव लिखें जो निम्नलिखित पाठ को प्रिंट करेगा। आउटपुट केस, स्पेसिंग और विराम चिह्न सहित बिल्कुल मेल खाना चाहिए।

Polar Bear, Polar Bear, what do you hear?
I hear a lion roaring in my ear.

Lion, Lion, what do you hear?
I hear a hippopotamus snorting in my ear.

Hippopotamus, Hippopotamus, what do you hear?
I hear a flamingo fluting in my ear.

Flamingo, Flamingo, what do you hear?
I hear a zebra braying in my ear.

Zebra, Zebra, what do you hear?
I hear a boa constrictor hissing in my ear.

Boa Constrictor, Boa Constrictor, what do you hear?
I hear an elephant trumpeting in my ear.

Elephant, Elephant, what do you hear?
I hear a leopard snarling in my ear.

Leopard, Leopard, what do you hear?
I hear a peacock yelping in my ear.

Peacock, Peacock, what do you hear?
I hear a walrus bellowing in my ear.

Walrus, Walrus, what do you hear?
I hear a zookeeper whistling in my ear.

Zookeeper, Zookeeper, what do you hear?
I hear children...

...growling like a polar bear,
roaring like a lion,
snorting like a hippopotamus,
fluting like a flamingo,
braying like a zebra,
hissing like a boa constrictor,
trumpeting like an elephant,
snarling like a leopard,
yelping like a peacock,
bellowing like a walrus...
that's what I hear.

6
kolmogorov-complexity इसके लिए एक अच्छा टैग होगा
charredgrass

3
अपरकेस हैं Bऔर Cमें Polar Bearऔर Boa Constrictorआवश्यक? (बैच में यह मेरे बाइट की गिनती का 10% मुझे देता है ...)
नील

क्या एक हैश जमा करना और प्रतिबंधित सेट के साथ समाधान को सीमित करना अनुमत है? : डी
पॉलीम

4
यह एक बहुत अच्छी पहली चुनौती है!
एलेक्स ए।

1
मैं +1 करता हूं, लेकिन आप 42 upvotes पर हैं, और मैं कौन हूं आकाशगंगा के तरीकों को परेशान करने के लिए?
फैंटाॅक

जवाबों:


34

05AB1E, 349 331 330 322 314 311 बाइट्स

•4i;kV_†©:š×Îj€Yå—‚‘%˜ESδþ¤çÑ9¶‹{Å€7¾à{Ì®qA•35B0¡…ing«lV•7ü[¿‘¢wÀ¶à-‚¤î„jHâ™ÐJ'µ‡ÀÂý6›ü‚š¸€%NtÅýµL›fU¥ì€€uîT¡›Ÿ{!œ>'Ì&ý§¨Ü?é>•36B1ð:0¡™D©„, «D‚ø“€À€·€î—«?“¶«¸â€˜€JU¦“„¾“‚˜lv„I “—«0€†€¯¶å.“«0¡`yð«Y¦õ‚˜Nè«sr„ aN5Qi'n«}ð«N9›ijrj¨ðs«…...«}srJˆ}X¯‚ø€Jvy,¶?}…...DU?Y¨vN__i',¶}yð“€è€…“N6Qi'n«}ð®NèJl?}X,“€Š's€À I—«.“?

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

व्याख्या

•4i;kV_†©:š×Îj€Yå—‚‘%˜ESδþ¤çÑ9¶‹{Å€7¾à{Ì®qA•
पैक्ड स्ट्रिंग जिसमें ध्वनियाँ हों GROWL0ROAR0SNORT0FLUT0BRAY0HISS0TRUMPET0SNARL0YELP0BELLOW0WHISTL

35B0¡…ing«lV
अनपैक, 0 पर विभाजित, प्रत्येक शब्द में "आईएनजी" जोड़ें, कम करें और चर वाई में स्टोर करें

•7ü[¿‘¢wÀ¶à-‚¤î„jHâ™ÐJ'µ‡ÀÂý6›ü‚š¸€%NtÅýµL›fU¥ì€€uîT¡›Ÿ{!œ>'Ì&ý§¨Ü?é>•
जानवरों से युक्त पैक्ड स्ट्रिंग POLAR1BEAR0LION0HIPPOPOTAMUS0FLAMINGO0ZEBRA0BOA1CONSTRICTOR0ELEPHANT0LEOPARD0PEACOCK0WALRUS0ZOOKEEPER

36B1ð:0¡™
अनपैक, 1 को स्पेस से बदलें, 0 पर विभाजित करें और टाइटल केस में बदलें

D©„, «D‚ø
डुप्लिकेट, बाद में उपयोग करने के लिए रजिस्टर करने के लिए सहेजें, "जोड़ें," एक कॉपी में, डुप्लिकेट करें कि और ज़िप।

“€À€·€î—«?“¶«¸
शब्दकोश शब्द "आप क्या सुनते हैं?", एक नई लाइन के बाद, एक नई सूची में जोड़ा गया

‘€JU
"पशु, पशु," और "आप क्या सुनते हैं?" की सूची का कार्टेशियन उत्पाद, चपटा हुआ और जुड़ गया और इसे चर X में संग्रहीत करता है। प्रपत्र "पशु, पशु, आप क्या सुनते हैं?" "।

¦“„¾“‚˜l
जानवरों की शेष सूची को पहले से लें, ज़ुकीपर को हटा दें और बच्चों को जोड़ें, निचले मामले में परिवर्तित करें।

v
प्रत्येक जानवर के लिए:

„I “—«0€†€¯¶å.“«0¡`

पुश "मैं अपने कान में 0 सुनता हूं।", 0 पर विभाजित करें और अलग-अलग तारों के रूप में धक्का दें।

yð«Y¦õ‚˜Nè«
बिना आवाज़ वाले बच्चों के साथ "जानवरों की आवाज़" पुश करें

sr„ a
"A" को सही जगह पर पुश करें

N5Qi'n«}
यदि जानवर "हाथी" है "एन" जोड़ें

ð«
स्थान जोड़ें।

N9›ijrj¨ðs«…...«}
यदि जानवर बच्चे हैं, तो अंतरिक्ष को हटा दें और "..." जोड़ें

srJˆ}
वाक्य में शामिल हों "मैं अपने कान में एक (एन) पशु ध्वनि सुनता हूं।" (साथ ही बच्चों को एक), वैश्विक सरणी और अंत लूप में स्टोर करें

X¯‚ø€J
पहली पंक्तियों को पुनः प्राप्त करें, झपकी लें और तुकबंदी के पहले भाग का निर्माण करें "पशु, पशु, आप क्या सुनते हैं? \ N मैं अपने कान में एक (n) पशु ध्वनि सुनता हूं।"

vy,¶?}
नई लाइन के बाद प्रिंट करें।

…...DU?
प्रिंट "..." और चर X में एक प्रतिलिपि संग्रहीत करें।

Y¨v
"सीटी" को छोड़कर प्रत्येक ध्वनि के लिए:

N__i, For} पहले वाले को छोड़कर प्रत्येक पंक्ति के लिए, इसे ", \ n" से शुरू करें (पिछली पंक्ति पर अल्पविराम पर जाएं)

yð“€è€…“
धक्का ध्वनि, अंतरिक्ष और "एक की तरह"

N6Qi'n«}
यदि हाथी "एन" जोड़ते हैं।

ð®NèJl?}X,
रजिस्टर में सहेजे गए जानवर को पुनः प्राप्त करें, "..." के बाद सब कुछ, प्रिंट और एंड लूप से जुड़ें। यह "ध्वनि की तरह (एक) जानवर," लाइनें पैदा करता है।

“€Š's€À I—«.“?
प्रिंट शब्दकोश स्ट्रिंग "यह वही है जो मैं सुनता हूं।"


30
यह एक Cululhu को बुला रहा है।
aloisdg का कहना है कि

6
मैं यह नहीं देख सकता कि कोड कहाँ समाप्त होता है और पैक्ड डेटा शुरू होता है।
एडम जूल

4
@ मुझे पता है। यह जिबरिश की तरह दिखता है :) मैं अंत में एक स्पष्टीकरण जोड़ूंगा जो उम्मीद है कि यह स्पष्ट कर देगा। मैं कोशिश करना चाहता हूँ और यह कुछ और पहली गोल्फ हालांकि कर सकते हैं।
एमिगा जूल

28
शायद यह है कि आम आदमी कोड की कल्पना कैसे करता है।
no --zɐɹƆ

1
मुझे नहीं पता कि मैंने अभी क्या पढ़ा है ...
निको

9

PHP, 420 414 434 414 412 बाइट्स

सीएलआई से कॉल करें या <pre>आउटपुट के लिए प्रस्तुत करें।

$v=[growl,roar,snort,flut,bray,hiss,trumpet,snarl,yelp,bellow,whistl];$a[6]=n;foreach($n=['polar bear',lion,hippopotamus,flamingo,zebra,'boa constrictor',elephant,leopard,peacock,walrus,zookeeper]as$i=>$p)echo$i?"I hear a$a[$i] $p $v[$i]ing in my ear.

":"",$q=ucwords($p),", $q, what do you hear?
",$i>9?"I hear children...

...":""&$z[]="$v[$i]ing like a$a[$i] $p";echo join(",
",$z),"...
that's what I hear.";
  • अपरिभाषित स्थिरांक के लिए कुछ नोटिस; PHP के फिर से शाब्दिक स्ट्रिंग किक करने के लिए डाली जाती है
  • "ए" को "ए एलीफेंट" के लिए जोड़कर 20 बाइट्स ली गई ... hmpf।
  • सामान रीक्रिएट करके वापस 20 बाइट्स मिला :)

टूट - फूट

$n=['polar bear',lion,hippopotamus,flamingo,zebra,'boa constrictor',elephant,leopard,peacock,walrus,zookeeper];
$v=[growl,roar,snort,flut,bray,hiss,trumpet,snarl,yelp,bellow,whistl];
$a[6]=n;
// loop through nouns with index $i
foreach($n as$i=>$p) echo
    // print first part:
        // not first noun: print second line to previous step
        $i?"I hear a$a[$i] $p $v[$i]ing in my ear.\n\n":"",
        // uppercase the first letter of each word in the noun, print
        $q=ucwords($p),
        // print uppercase noun again and the rest of the line
        ", $q, what do you hear?\n",
        // for last noun print bridge, else print nothing
        $i>9?"I hear children...\n\n...":""
    // ... AND add line to second part
        &$z[]="$v[$i]ing like a$a[$i] $p"
;
// print second part and final line
echo join(",\n",$z),"...\nthat's what I hear.";

8

जावास्क्रिप्ट, 545 541 497 बाइट्स

a="Polar Bear|Lion|Hippopotamus|Flamingo|Zebra|Boa Constrictor|Elephant|Leopard|Peacock|Walrus|Zookeeper".split`|`;s=btoa`º0:èj¼ìíÍùn·6ëk,áË3¶»¦¥ës²v«<ÛzYhÃ<!Ëe`.split`z`;a.map((m,n)=>{console.log(m+", "+m+", what do you hear?\n "+((n>9)?"I hear children...\n":"I hear a"+(n==5?"n ":" ")+a[n+1].toLowerCase()+" "+s[n+1]+"ing in my ear.\n"))});p="...";a.map((m,n)=>{if(n>9)return;p+=s[n]+"ing like a"+(n==6?"n ":" ")+m.toLowerCase()+(n>8?"...\nthat's what I hear.":",\n")});console.log(p)

काफी मजेदार चुनौती!

धन्यवाद मुझे नीचे का उपयोग करके बाइट्स के 27 टन की बचत के लिए धन्यवाद atob, और 4 बाइट्स के लिए टाइटस!

Ungolfed:

a="Polar Bear|Lion|Hippopotamus|Flamingo|Zebra|Boa Constrictor|Elephant|Leopard|Peacock|Walrus|Zookeeper".split`|`;
s=btoa`º0:èj¼ìíÍùn·6ëk,áË3¶»¦¥ës²v«<ÛzYhÃ<!Ëe`.split`z`;
a.map((m,n)=>{
  console.log(m+", "+m+", what do you hear?\n "+((n==10)?"I hear children...\n":"I hear a" + (n==5?"n ":" ") + a[n+1].toLowerCase() + " " + s[n+1] + "ing in my ear.\n"))
});
p="...";a.map((m,n)=>{
  if(n==10) return;
  p+=s[n] + "ing like a" + (n==6?"n ":" ") + m.toLowerCase() + (n==9?"...\nthat's what I hear.":",\n")
});
console.log(p);

a.map((n,m)=>n>9||(p+=s[n]...))
नील

1
@ OldBunny2800 गोल्फिंग के उद्देश्यों के लिए, आपको वैश्विक चर सेट करने की अनुमति है। (हालांकि एक पुनरावर्ती कार्य में यह मत करो!)
नील

1
आपका कोड काम नहीं करता है, मुझे लगता है कि स्टैक आपके बेस 64 कोड में कुछ अक्षरों का आदान-प्रदान करता है। विभाजन के बाद मुझे मिलता है ["ujA66Gq87O3N + W63NutrLOHLM7a7pqXrc7J2q", "", "bellow", "Why2U ="]।
लोलस्क

1
c=console.log;शुरुआत में परिभाषित करें फिर 6 बाइट को बचाने के लिए सी () का उपयोग करें। या बस स्ट्रिंग को एक चर में सहेजें और इसे अलर्ट () के साथ एक बार प्रिंट करें।
लोल्सक जूल

1
@lolesque c=console.logक्योंकि काम नहीं करता है logएक होना आवश्यक है thisकी consoleया यह एक त्रुटि पैदा करता है। (जब तक यह कुछ ब्राउज़रों / वातावरणों में नहीं होता है?) यह सब एक तार में डालने का विचार अच्छा लगता है, हालांकि
अप्सिलर्स

7

/// , 523 512 बाइट्स

/_/\/\///:/ar_!/, what do you he:?
I he: _$/!a_#/ing in my e:.

_%/ing like a_&/, _*/,
_0/Pol: Be:_1/ion_2/ippopotamus_3/lamingo_4/ebra_5/oa _S/onstrictor_6/lephant_7/eopard_8/eacock_9/alrus_Q/ookeeper_R/trumpet/0&0$ l1 ro:#L1&L1$ h2 snort#H2&H2$ f3 flut#F3&F3$ z4 bray#Z4&Z4$ b5cS hiss#B5CS&B5CS$n e6 R#E6&E6$ l7 snarl#L7&L7$ p8 yelp#P8&P8$ w9 bellow#W9&W9$ zQ whistl#ZQ&ZQ!children...

...growl% pol: be:*ro:% l1*snort% h2*flut% f3*bray% z4*hiss% b5cS*R%n e6*snarl% l7*yelp% p8*bellow% w9...
that's what I he:.

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

608 बाइट्स वास्तविक संदेश (1120) से कम है, यह इसके आधे (560) से कम है!


6

दिल्लोग एपीएल , 387 बाइट्स

⎕UCS¯2(219⌶)¯128+⎕UCS'øZýÓÁî°üÁ~`Û¯ß(4Õ+ÖjáïvXô ¶Dhkë ©4¹³`LxÖ4¢gͼ4ªBáDÚN¼ùV ÂÅF]@¸hÆà bKÚ¸_oQãÔÝ ¸$8§ú_ÔÈxÖ ~6*ãªd ¿ð>¥ÐB8þôÍxwÄ6Å
ô¡é¢wBlDµ¯ë
Ãbqè+ý+ÜÈýgu!gWËØ#0="«ë"HDÝÀV·¦/ÕMÆí}h<àì7å ÝÒëëñX³ýM <dÄ<ëmµñqP]¥c¬l¾¤ìÚã/$ÝÕqÙÞîCLéMÝÏ}OÔϤr$¤è©~ì2[¢{·YWÒ俦à¶)YØ©;s÷¬¥+ó&¿ÉâgËr
,Ýî©)¥Ö­2è´ÝÅd{úK5­·Õ}ýÚ'

पढ़ने में आसानी के लिए: ⎕UCS¯2(219⌶)¯128+⎕UCS'...'

⎕UCS '... 'स्ट्रिंग को यूनिकोड कोड बिंदुओं में परिवर्तित करें

¯128+ -128 ≤ n 128 127 पाने के लिए 128 घटाएँ

¯2(219⌶) अन-zlib

⎕UCS यूनिकोड कोड को स्ट्रिंग में बदलें

स्रोत स्ट्रिंग zlib'ed यूनिकोड कोड बिंदुओं के निम्नलिखित 365 बाइट्स हैं:

F8 5A FD D3 C1 EE 04 B0 8C FC C1 7E 60 DB AF 91 DF 28 34 D5 2B D6 6A E1 EF 15 76 96 58 F4 09 B6 44 11 93 04 68 6B EB A0 A9 94 34 B9 10 98 0F B3 60 4C 78 0C D6 91 1C 34 A2 89 67 CD BC 34 AA 42 95 E1 44 9E DA 4E BC 0B 0F F9 87 85 56 20 83 C2 C5 46 5D 40 B8 68 C6 E0 20 92 62 13 81 89 4B DA B8 5F 9A 6F 51 E3 D4 DD 9F A0 B8 24 38 A7 FA 5F D4 C8 78 7F D6 A0 7E 36 2A E3 AA 64 20 BF F0 3E A5 D0 42 9A 95 38 FE F4 CD 8A 78 99 77 C4 17 89 11 10 36 82 C5 0D 8A 9A F4 A1 12 E9 A2 92 77 9D 42 1E 6C 44 B5 AF EB 0D 04 C3 62 71 87 9C E8 2B FD 2B DC 04 C8 FD 67 75 21 67 57 04 CB D8 23 12 30 9A 3D 22 AB EB 22 48 9E 44 DD C0 56 B7 87 85 A6 2F D5 03 4D 9D C6 ED 7D 1E 68 3C E0 EC 37 9C 94 08 86 E5 09 DD D2 EB EB F1 58 B3 FD 4D 20 04 3C 17 64 C4 3C EB 6D B5 F1 11 89 71 50 5D A5 63 AC 6C 9A BE A4 EC DA E3 2F 24 DD D5 71 D9 DE EE 04 43 4C E9 4D DD CF 7D 4F 13 D4 CF 13 A4 72 24 A4 E8 1A 9E A9 7E EC 1F 32 5B 19 10 A2 7B B7 01 59 57 D2 E4 BF A6 E0 B6 29 94 59 D8 A9 3B 73 1D 94 9B F7 AC A5 2B F3 26 BF C9 E2 67 7F CB 72 0A 2C DD EE A9 29 A5 D6 AD 92 32 E8 B4 DD C5 64 7B FA 8A 4B 35 AD B7 D5 7D 82 0F FD 1 DA

6

पायथन 3, 497 484 480 बाइट्स

P=print
N=lambda m:"an"[:("E"==m[0])+1]+" "+m.lower()
h="I hear "
A=[a.split("|")for a in"Polar Bear|growl:Lion|roar:Hippopotamus|snort:Flamingo|flut:Zebra|bray:Boa Constrictor|hiss:Elephant|trumpet:Leopard|snarl:Peacock|yelp:Walrus|bellow:Zookeeper|whistl".split(":")]
for i in range(11):
 a,b=A[i]
 if i:P(h+N(a)+" "+b+"ing in my ear.\n")
 a+=", ";P(a+a+"what do you hear?")
P(h+"children...\n\n..."+",\n".join([z+"ing like "+N(y)for y,z in A[:-1]])+"...\nthat's what I hear.")

(सहेजे गए 13 बाइट्स के लिए क्रेडिट गेबर फ़ेकेट को जाना चाहिए, और टेलर लोपेज़ द्वारा अतिरिक्त 4 बाइट्स बचाए गए।)

तो आप शायद अनुमान लगा सकते हैं कि मैं एक शिक्षण उपकरण के रूप में पायथन जैसी भाषा का उपयोग करने जा रहा था। यह कार्यक्रम था इससे पहले कि मैंने इसे गोल्फ शुरू किया।

def startsWithVowel(name):
    firstLetter = name[0]
    return firstLetter in ["A", "E", "I", "O", "U"]

def aOrAn(name):
    return "an" if startsWithVowel(name) else "a"

animals = [
#    NAME (0),     SOUND (1)
    ("Polar Bear", "growling"),
    ("Lion", "roaring"),
    ("Hippopotamus", "snorting"),
    ("Flamingo", "fluting"),
    ("Zebra", "braying"),
    ("Boa Constrictor", "hissing"),
    ("Elephant", "trumpeting"),
    ("Leopard", "snarling"),
    ("Peacock", "yelping"),
    ("Walrus", "bellowing"),
    ("Robot Dragon", "screeching"),
    ("Owl", "hooting"),
    ("Monkey", "laughing"),    
    ("Zookeeper", "whistling")]

NAME = 0
SOUND = 1
for animalNumber in range(len(animals)):
    thisAnimal = animals[animalNumber]
    if animalNumber + 1 < len(animals):    
        nextAnimal = animals[animalNumber + 1] 
    else: 
        nextAnimal = None

    print("{n}, {n}, what do you hear?".format(n=thisAnimal[NAME]))

    if nextAnimal != None:
        print("I hear {a} {n} {s} in my ear.".format(n=nextAnimal[NAME].lower(),
                                                     s=nextAnimal[SOUND],
                                                     a=aOrAn(nextAnimal[NAME])))
    else:
        print("I hear children...")

        children = []        
        for animal in animals[:-1]:
            children.append("{s} like {a} {n}".format(n=animal[NAME].lower(), 
                                                      s=animal[SOUND],
                                                      a=aOrAn(animal[NAME])))
        print("...{}...".format(",\n".join(children)))
        print("that's what I hear.")

2
आप कुछ बाइट्स को बचाने के लिए अनपैकिंग सिंटैक्स का उपयोग कर सकते हैं: इसमें परिवर्तन a=A[i]करें a,b=A[i]और फिर आप लिख सकते हैं aऔर bइसके बजाय a[0]और a[1]। इससे 12 बाइट बच जाएंगी।
गैबोर फेकेट

बदलने N=lambda m:("a","an")["E"==m[0]]+" "+m.lower()के लिए N=lambda m:"an"[:("E"==m[0])+1]और n=a[0]+", ";P(n+n+"what do you hear?")करने के लिए a+=", ";P(a+a+"what do you hear?")2 और बाइट्स बचत होगी।
गैबोर फेकेट

सामान्य गोल्फ सवाल। जहां आपके पास है len(A), क्योंकि इस चुनौती का उद्देश्य केवल स्थैतिक उत्पादन (गतिशील इनपुट से निपटना नहीं) उत्पन्न करना है, क्या 11बाइट्स को बचाने के बजाय हार्ड-कोडेड का उपयोग करना स्वीकार्य है ?
टेलर लोपेज

1
@TaylorLopez निश्चित रूप से, यह सामान्य रूप से बुरा व्यवहार है, लेकिन गोल्फ के लिए जहां लक्ष्य को कम से कम करना है, मुझे कोई कारण नहीं दिखता है।
आहातोइनिन

5

पायथ - 427 384 बाइट्स

=G"1, 1, what do you hear?\nI hear a 2 in my ear.\n"=Hc"growling/Polar Bear/roaring/Lion/snorting/Hippopotamus/fluting/Flamingo/braying/Zebra/hissing/Boa Constrictor/trumpeting/Elephant/snarling/Leopard/yelping/Peacock/bellowing/Walrus/whistling/Zookeeper"\/FNT
::G\1@H+yN1\2++r@H+yN3Zd@H+yN2)p+::G"I(.|\n)*"k\1@H20"I hear children...\n\n..."FN9
::"1 like a 2,"\1@HyN\2r@H+yN1Z)p"bellowing like a walrus...\nthat's what I hear.

J"%s, %s, what do you hear?"K"I hear a%sing in my ear.\n"=Hc"Polar Bear/roar/Lion/snort/Hippopotamus/flut/Flamingo/bray/Zebra/hiss/Boa Constrictor/trumpet/Elephant/snarl/Leopard/yelp/Peacock/bellow/Walrus/whistl/Zookeeper/growl"\/FN11
%J*2[@HyN)?qNT"I hear children...\n"%Kjd[?qN5\nkr@H+yN2Z@HhyN))p"..."FN9
+%=J"%sing like a%s"[@HtyN+?qN5\nk+dr@HyNZ)?qN8"..."\,)
"that's what I hear"

इसे यहाँ आज़माएं - पर्मलिंक


तुम दूर गोल्फ कर सकते हैं ing? मैं पीएचपी पियथ को हराकर पागल हो जाता हूं।
टाइटस

1
कोड आउटपुट a elephant
एंटिटी 29

सभी समस्याओं (तथ्य यह है कि PHP हरा अजगर सहित) तय कर रहे हैं!
कोरियाईवेल्सग्लास

3

सी #, 575 525 520 526 507 504 497 494 493 बाइट्स

()=>{var t="growl,Polar Bear,roar,Lion,snort,Hippopotamus,flut,Flamingo,bray,Zebra,hiss,Boa Constrictor,trumpet,Elephant,snarl,Leopard,yelp,Peacock,bellow,Walrus,whistl,Zookeeper".Split(',');string r="",s="",z="a ",n="an ";for(int i=0,j=0;i<21;r+=t[++i]+$", {t[i]}, what do you hear?\nI hear "+(i>19?@"children...

...":(i==11?n:z)+t[++i+1].ToLower()+$" {t[i]}ing in my ear.\n\n"))s+=j<20?t[j]+"ing like "+(j==12?n:z)+t[++j].ToLower()+(++j<20?@",
":@"...
"):"that's what I hear.";return r+s;};

सी # लैम्ब्डा जहां आउटपुट ए है string

व्याख्या

  1. Init tप्रारूप के साथ एक स्ट्रिंग के रूप noise,animal,noise,animal,...और से विभाजित ,
  2. घोषित rऔर srगीत का पहला भाग और sअंतिम भाग है। zऔर nयहाँ संभाल रहे हैं Elephant
  3. चलना tऔर निर्माण rऔर sएक ही लूप में। अजीब टर्नरी + प्रक्षेपित सामान।
  4. गीत के पहले भाग को और उसके बाद अंतिम भाग को वापस करें।

कोड

()=>{
    var t="growl,Polar Bear,roar,Lion,snort,Hippopotamus,flut,Flamingo,bray,Zebra,hiss,Boa Constrictor,trumpet,Elephant,snarl,Leopard,yelp,Peacock,bellow,Walrus,whistl,Zookeeper".Split(',');
    string r="",s="",z="a ",n="an ";
    for(int i=0,j=0;i<21;r+=t[++i]+$", {t[i]}, what do you hear?\nI hear "+(i>19?@"children...

...":(i==11?n:z)+t[++i+1].ToLower()+$" {t[i]}ing in my ear.\n\n"))
        s+=j<20?t[j]+"ing like "+(j==12?n:z)+t[++j].ToLower()+(++j<20?@",
":@"...
"):"that's what I hear.";
    return r+s;
};

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


3

पायथन 2 - 454 बाइट्स

a="polar bear,lion,hippopotamus,flamingo,zebra,boa constrictor,elephant,leopard,peacock,walrus,zookeeper,whistl,bellow,yelp,snarl,trumpet,hiss,bray,flut,snort,roar,growl".split(',')
e='...\n\n'
r=range
print'\n'.join([(a[i].title()+', ')*2+"what do you hear?\nI hear "+((i<10)*("a%s %sing in my ear.\n"%("n "[i!=5:]+a[i+1],a[~-~i]))or"children%s..."%e+",\n".join(a[~j]+"ing like a"+"n "[j!=6:]+a[j]for j in r(10))+e+"that's what I hear.")for i in r(11)])

3

आर 518 509 482 477 474 465 452 456 बाइट्स

कोड प्रयास करने के लिए R-Fiddle से लिंक करें

a=c("Polar Bear","Lion","Hippopotamus","Flamingo","Zebra","Boa Constrictor","Elephant","Leopard","Peacock","Walrus","Zookeeper")
b=c("...growl","roar","snort","flut","bray","hiss","trumpet","snarl","yelp","bellow","whistl")
d=c(rep("a ",6),"an ")
f=tolower(a)
cat(c(paste0(a,", ",a,", what do you hear?\nI hear ",c(paste0(d,f," ",b,"ing in my ear.")[-1],"children..."),"\n\n"),paste0(b,"ing like ",d,f,c(rep(",\n",9),"...\nthat's what I hear."))[-11]))
  • ले जाया गया childrenवेक्टर से बाहर aहै, और में इसी प्रविष्टि से छुटकारा मिला d8 बाइट्स को बचाने के लिए वेक्टर
  • अधिक चिड़चिड़ाहट और चलती द्वारा की गई सदस्यता को हटाने से children, 27 बाइट्स बच गए।
  • tolowerफ़ंक्शन को वैश्वीकृत किया , 5 बाइट्स सहेजे
  • के writeLinesसाथ बदलें catऔर उचित रूप से ( \nस्थानों में जोड़ा गया) 3 बाइट्स में सुधार किया गया
  • एहसास हुआ कि अगर dकेवल 7 तत्व पूरे 11 नहीं हैं, तो आर बस फिर से शुरू करने के लिए वापस लूप करेगा। 11 <14 के रूप में तो यह हमारे लिए काम करता है। बची 9 बाइट।
  • भूमंडलीकृत सदस्यता, 13 बाइट्स को बचाया।
  • catफ़ंक्शन के साथ अलग हो रहा था " ", वापस बदल गया writeLines। जोड़ा गया 4 बाइट्स ( फ़ंक्शन में catजोड़कर तय किया जा सकता है ,sep="")

PPCG में आपका स्वागत है! यह एक अच्छा पहला उत्तर है। क्या आपके कोड को ऑनलाइन आज़माने का कोई तरीका है?
aloisdg का कहना है कि मोनिका

1
इस प्रयास करें r-fiddle.org/#/fiddle?id=5pqkHPyL&version=1 हालांकि मैं एक चरित्र (बैकस्लैश) जोड़ने के लिए "है कि" सही ढंग से यह apostrophe पढ़ने के लिए पाने के लिए था
रॉबर्ट Maidstone

धन्यवाद। आर-फिडल में, मैंने देखा कि आप एक है ' 'की प्रत्येक मद से पहले aके बाद "Polar Bear"। क्या यह सामान्य है?
aloisdg का कहना है कि Monica

मुझे पूरी तरह से यकीन नहीं है कि आपका क्या मतलब है। क्या आपको कविता के पहले खंड में स्थान से मतलब है? यहाँ "शेर" से पहले की तरह? "ध्रुवीय भालू, ध्रुवीय भालू ...... \ n सुनते हैं ...... \ n शेर, शेर ..... \ n सुनते हैं एक ..." मैंने इससे पहले इस पर ध्यान नहीं दिया था। यह एक स्थान का उपयोग करके अलग बिल्ली समारोह से आता है। यह फ़ंक्शन में sep = "" जोड़कर तय किया जा सकता है, हालांकि तब राइटलाइन का उपयोग करना बेहतर हो जाता है। (मैंने कोड वापस राइटलाइन पर बदल दिया है)
रॉबर्ट मैडस्टोन

3

सी #, 592 572 बाइट्स

using System;class p{static void Main(){string[] s={"","","Polar Bear","Lion","Hippopotamus","Flamingo","Zebra","Boa Contrictor","Elephant","Leopard","Peacock","Walrus","Zookeeper","growl","roar","snort","flut","bray","hiss","trumpet","snarl","yelp","bellow","whistl"};for(int i=2;i<13;i++){s[0]+=(s[i]+", "+s[i]+", what do you hear?\nI hear "+(i<12?"a"+(i==7?"n ":" ")+s[i+1].ToLower()+" "+s[i+12]+"ing in my ear.\n\n":"children...\n\n..."));if(i<12)s[1]+=s[i+11]+"ing like a"+(i==8?"n ":" ")+s[i].ToLower()+(i<11?",\n":"...\nthat's what I hear.\n");}Console.Write(s[0]+s[1]);}}

मेरे सहयोगी के साथ इस चुनौती को लेने का इतना अच्छा समय था! विचार के लिए धन्यवाद।

प्रारूपित:

using System;
class p {
    static void Main() {
        string[] s = { "", "", "Polar Bear", "Lion", "Hippopotamus", "Flamingo", "Zebra", "Boa Contrictor", "Elephant", "Leopard", "Peacock", "Walrus", "Zookeeper", "growl", "roar", "snort", "flut", "bray", "hiss", "trumpet", "snarl", "yelp", "bellow", "whistl" };
        for (int i = 2; i < 13; i++) {
            s[0] += (s[i] + ", " + s[i] + ", what do you hear?\nI hear " + (i < 12 ? "a" + (i == 7 ? "n " : " ") + s[i + 1].ToLower() + " " + s[i + 12] + "ing in my ear.\n\n" : "children...\n\n..."));
            if (i < 12) s[1] += s[i + 11] + "ing like a" + (i == 8 ? "n " : " ") + s[i].ToLower() + (i < 11 ? ",\n" : "...\nthat's what I hear.\n");
        }
        Console.Write(s[0] + s[1]);
        Console.ReadKey();
    }
}

संपादित करें: आपके कई और भयानक सुझावों के लिए धन्यवाद, उन्होंने बहुत मदद की और मैं अन्य लोगों को भी काम करने की कोशिश करूंगा।


1
सभी अनावश्यक व्हाट्सएप को हटा दें, आप new[]ओ के बजाय उपयोग कर सकते हैं । new string[]इसके अलावा आप @ aloisdg के जवाब में एक गुमनाम समारोह में इसे बना सकते हैं
TheLethalCoder

PPCG में आपका स्वागत है! इस उत्तर में अच्छा विचार! आपको C # पृष्ठ में कोड गोल्फिंग के सुझावों में इसे सुधारने के लिए कुछ प्रेरणा मिल सकती है । बढ़ा चल!
aloisdg का कहना है कि मोनिका जूल

1
आप a elephantजाल में पड़ गए (मैंने भी किया)। यह है an elephant;)
aloisdg का कहना है कि मोनिका जूल

क्रिया सरणी में अपने "आईएनजी" को बाहर निकालें और इसे कुछ और बचत के लिए आउटपुट में स्थानांतरित करें।
गिटारपरिक जूल

3

बैच, 650 647 बाइट्स

@echo off
set e=echo(
set s=shift
call:d a "polar bear" ...growl "Polar Bear" a lion roar Lion a hippopotamus snort Hippopotamus a flamingo flut Flamingo a zebra bray Zebra a "boa constrictor" hiss "Boa Constrictor" an elephant trumpet Elephant a leopard snarl Leopard a peacock yelp Peacock a walrus bellow
exit/b
:d
call:v %* Walrus a zookeeper whistl Zookeeper
%e%I hear children...
%e%
:l
%e%%3ing like %1 %~2,
%s%
%s%
%s%
%s%
if not "%5"=="" goto l
%e%%3ing like a %2...
%e%that's what I hear.
exit/b
:v
%e%%~4, %~4, what do you hear?
if "%5"=="" exit/b
%e%I hear %5 %~6 %7ing in my ear.
%e%
%s%
%s%
%s%
%s%
goto v

क्योंकि %*बैच एक सरणी के लिए निकटतम चीज है। अगर मैं उपयोग कर सकता हूं Polar bearऔर Boa constrictorफिर मैं 10% बचा सकता हूं ... लेकिन मैं अभी भी मूल पाठ के 50% से अधिक हूं ...

संपादित करें: e=echo(एक (स्थान के बजाय सेट करके 3 बाइट्स सहेजे गए , जो मुझे खाली लाइनों को प्रतिध्वनित करने के लिए इसका उपयोग करने की अनुमति देता है, हालांकि मुझे तब @echo offपूर्ण रूप से लिखना होगा ।


2

बैश + zcat, 402 बाइट्स

बस एक मजाक:
एक 2 लाइनें स्क्रिप्ट को बैश करती है जो खुद को पूंछती है और दूसरी लाइन को zcat में पाइप करती है।
दूसरी पंक्ति gzipped text है।

इसे कैसे तैयार करें: एक फ़ाइल में सभी पाठ a। फिर

echo "tail -n+2 \$0|zcat;exit" > go.sh
gzip a ;
cat a.gz >> go.sh
chomod u+x go.sh

निष्पादित फ़ाइल तब बनाई जाती है जब निष्पादित पाठ, 402 बाइट्स देता है।


क्या आप वास्तविक कोड पोस्ट कर सकते हैं? 402 बाइट्स इतना अधिक नहीं है (यानी आप इसे पोस्ट कर सकते हैं।)
एरिक आउटगोल्फर

@ E @Gline कोड केवल tail -n+2 \$0|zcat;exitएक नई पंक्ति और 379 बाइट्स का बाइनरी स्ट्रिंग (प्रस्तावित पाठ का gzipped संस्करण) है। क्या आप डाउनवोट का कारण जानते हैं? (यह एक संग्रह के साथ स् थापना स्क्रिप्ट के लिए अर्ध मानक प्रक्रिया है, IMHO c ++ में लाइब्रेरी के उपयोग से अलग नहीं है)।
हस्तूर

ऐसा लगता है कि आप कोरुटिल्स ( zcat) का उपयोग करते हैं , इसलिए आपका हैडर होना चाहिए ( बैश + कोर्यूटिल्स, 402 बाइट्स ) के बजाय ( बैश (जेडसीटी के साथ) 402 )। और, क्या आप अपना उत्तर संपादित कर सकते हैं (बस <!>अपनी पोस्ट के अंत में संलग्न करें)? मैं
डाउनवोट

@ E @G comes कोरयूटिल्स zcatसे नहीं है, यह साथ आता है gzip। कई सिस्टम में उस कॉल के साथ एक स्क्रिप्ट होती है gzip -cd "$@"... Bash + zcat, 402 बाइट्स में BTW I संशोधित।
हस्तूर

अच्छा, डाउनवोट हटा दिया गया। उत्थान मेरा है।
निकोलस जूल

2

एफ #, 591 589 579 576 573 567 552 बाइट्स

यह मेरी तरह की भाषा के साथ कोड गोल्फिंग पर मेरा पहला प्रयास है। मुझे यकीन है कि कुछ तरीके हैं जिससे इसे कम किया जा सकता है। FSI में चलता है, इसलिए .NET बॉयलरप्लेट की कोई आवश्यकता नहीं है।

संपादित करें: निकालकर 10 बाइट्स शेव की गईं \r। यह अभी भी VSCode में ठीक प्रस्तुत करता है इसलिए आंकड़े पर जाएं। फ़ंक्शन रचना के साथ एक और तीन बाइट्स काटें, और एक लैम्ब्डा के साथ एक और तीन, फिर सेक के बजाय लूप के लिए छह (लैम्ब्डा से छुटकारा पाना)। अंत में 15 बाइट्स को फिर से व्यवस्थित करके काटा गयाa(s:string)

let A="Polar Bear,Lion,Hippopotamus,Flamingo,Zebra,Boa Constrictor,Elephant,Leopard,Peacock,Walrus,Zookeeper".Split(',')
let S="growl,roar,snort,flut,bray,hiss,trumpet,snarl,yelp,bellow,whistl".Split(',')
let a(s:string)=(if s.[0]='E'then"an "else"a ")+s.ToLower()
let f i=sprintf"%s, %s, what do you hear?\nI hear "A.[i]A.[i]
for i in 0..9 do printfn"%s%s %sing in my ear.\n"(f i)(a A.[i+1])S.[i+1]
printf"%schildren...\n\n..."(f 10)
let t i=sprintf"%sing like %s"S.[i](a A.[i])
Seq.iter(t>>printfn"%s,")[0..8]
printfn"%s...\nthat's what I hear."(t 9)

3
PPCG में आपका स्वागत है, अच्छा जवाब!
बिल्ली

मुझे पता है कि #F एक .net हैडसेन्ज है, लेकिन मुझे लगता है कि इस चुनौती के उद्देश्य के लिए आप "\ r \ n" को एक साधारण "\ n" से बदल सकते हैं, क्योंकि अवधारणा एक ही है और यह बाइट्स बचाता है
Vale

@Vale धन्यवाद 10 बाइट्स बचाए
asibahi

1
गिनती को प्रभावित नहीं करता है, लेकिन आपने "हिप्पोपोटेमस" गलत लिखा है।
जेंटलपावरलेन

@ जेंटलपेयरलेन हेह। मुझे लगा कि मैंने सभी स्पेलिंग की तलाश की। मैं इसे ठीक कर दूंगा।
असाबाही

1

एमएसीएस लिस्प, 576 (621) बाइट्स

(let*((a'("polar bear""lion""hippopotamus""flamingo""zebra""boa constrictor""elephant""leopard""peacock""walrus""zookeeper"))(l(length a))(m(- l 1))(s'("growl""roar""snort""flut""bray""hiss""trumpet""snarl""yelp""bellow""whistl")))(dotimes(i l)(message"%s, what do you hear?"(let((a(capitalize(nth i a))))(concat a", "a)))(if(not(eq i m))(message "I hear a %s %sing in my ear.\n"(nth(1+ i)a)(nth(1+ i)s))(message"I hear children...\n")(dotimes(j m)(message(concat(when(eq j 0)"...")"%sing like a %s"(if(eq(1+ j)m)"..."","))(nth j s)(nth j a)))(message"That's what I hear."))))

"एक हाथी" को ठीक करते समय, इसमें थोड़ा अधिक समय लगता है:

(let*((a'("polar bear""lion""hippopotamus""flamingo""zebra""boa constrictor""elephant""leopard""peacock""walrus""zookeeper"))(l(length a))(m(- l 1))(s'("growl""roar""snort""flut""bray""hiss""trumpet""snarl""yelp""bellow""whistl")))(dotimes(i l)(message"%s, what do you hear?"(let((a(capitalize(nth i a))))(concat a", "a)))(if(not(eq i m))(message "I hear a %s %sing in my ear.\n"(nth(1+ i)a)(nth(1+ i)s))(message"I hear children...\n")(dotimes(j m)(message(concat(when(eq j 0)"...")"%sing like a"(and(string-match-p"^[aeiou]"(nth j a))"n")" %s"(if(eq(1+ j)m)"..."","))(nth j s)(nth j a)))(message"That's what I hear."))))

Ungolfed:

(let* ((animals '("polar bear"
                  "lion"
                  "hippopotamus"
                  "flamingo"
                  "zebra"
                  "boa constrictor"
                  "elephant"
                  "leopard"
                  "peacock"
                  "walrus"
                  "zookeeper"))
       (l (length animals))
       (m(- l 1))
       (sounds '("growl"
                 "roar"
                 "snort"
                 "flut"
                 "bray"
                 "hiss"
                 "trumpet"
                 "snarl"
                 "yelp"
                 "bellow"
                 "whistl")))
  (dotimes (i l)
    (message "%s, what do you hear?"
             (let ((animal (capitalize (nth i animals))))
               (concat animal ", " animal)))
    (if (not (eq i m))
        (message "I hear a %s %sing in my ear.\n"
                 (nth (1+ i) animals)
                 (nth (1+ i) sounds))
      (message "I hear children...\n")
      (dotimes (j m)
        (message
         (concat
          (when (eq j 0) "...")
          "%sing like a"
          (and (string-match-p"^[aeiou]" (nth j animals)) "n")
          " %s"
          (if (eq (1+ j) m) "..." ","))
         (nth j sounds )
         (nth j animals)))
      (message"That's what I hear."))))

आपका regex से छोटा किया जा सकता है ^[aeiou]के लिए ^e, यह नहीं कर सकता?
उल्लू

हाथी के लिए हाँ, लेकिन अगर अन्य जानवरों को जोड़ा गया तो इसे बदलने की आवश्यकता होगी। पहले से ही 600 बाइट्स के साथ, 6 बाइट्स से इतना नुकसान नहीं होता है।
लॉर्ड यूमा

1

सी, 596 बाइट्स

f()बिना किसी तर्क के बुलाओ । यह दुनिया का सबसे अच्छा गोल्फ नहीं है, मैं शायद इसे और अधिक सिकोड़ सकता हूं।

f(n){char*t,a[99][99]={"Polar Bear","Lion","Hippopotamus","Flamingo","Zebra","Boa Constrictor","Elephant","Leopard","Peacock","Walrus","Zookeeper","growl","roar","snort","flut","bray","hiss","trumpet","snarl","yelp","bellow","whistl"};for(n=0;n<11;){strcpy(t=a[n+30],n^6?" ":"n ");strcat(t,a[n++]);for(;*t=tolower(*t);++t);}for(n=0;printf("%s, %s, what do you hear?\n",a[n],a[n]),n<10;++n)printf("I hear a%s %sing in my ear.\n\n",a[n+31],a[12+n]);puts("I hear children...\n");for(n=11;n<21;++n)printf("%s%sing like a%s%s\n",n^11?"":"...",a[n],a[n+19],n^20?",":"...");puts("that's what I hear.");}

इसे आइडोन पर आज़माएं।


क्या आप आइडोन के लिए एक लिंक जोड़ सकते हैं?
aloisdg का कहना है कि मोनिका जूल 19'16

2
जोड़ा गया ideone लिंक।
उल्लू के जूलर

a[99][99]-> **a(-6)। आप f()यहाँ तर्क के बिना फोन नहीं कर सकते , आपको एक की जरूरत है n। बदलें f(n){के साथ f{n;। एक और -1 यहाँ। इसके अलावा, f()अब कॉल करने योग्य है।
निकोलस

@owacoder कैसे आए? **aचरित्र सरणी (या एक चरित्र सूचक सूचक) की एक सरणी का मतलब है, और, मेरे लिए, यह हमेशा काम किया है (सीसीसी 4.8)। आप किस कंपाइलर का उपयोग करते हैं? यदि आप gcc का उपयोग नहीं करते हैं, तो आपको इसे निर्दिष्ट करना होगा। यदि आप gcc का उपयोग करते हैं, तो यह एक डिफ़ॉल्ट है।
को आउटगोल्फ जूल को एरिक

@owacoder नहीं! यह एक सरणी बनाता है जो लंबाई 98 के 98 तार फिट बैठता है! और आप निश्चित रूप से अपने विचारधारा लिंक को "ऑनलाइन प्रयास करें!" गोल्फ के लिए, के a[99][99]साथ बदलें a[<how many elements do I modify?>+1][<what is the maximum length of any string in here?>+1]
एरिक आउटगोल्फर

1

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

h=t=''
for n,s in zip('polar bear,lion,hippopotamus,flamingo,zebra,boa constrictor,elephant,leopard,peacock,walrus,zookeeper'.split(','),'...growl roar snort flut bray hiss trumpet snarl yelp bellow whistl'.split()):u='n'[:'el'in n],n,s,n.title();h+="I hear a{0} {1} {2}ing in my ear.\n\n{3}, {3} what do you hear?\n".format(*u);t+="{2}ing like a{0} {1},\n".format(*u)
print((h+'I hear children...\n\n'+t)[44:-30]+"...\nthat's what I hear.")

ungolfed:

animals = 'polar bear,lion,hippopotamus,flamingo,zebra,boa constrictor,elephant,leopard,peacock,walrus,zookeeper'.split(',')

sounds = '...growl roar snort flut bray hiss trumpet snarl yelp bellow whistl'.split()

h=t=''
for n,s in zip(animals,sounds):
    u='n'[:'el'in n], n, s, n.title()

    h+="I hear a{0} {1} {2}ing in my ear.\n\n{3}, {3} what do you hear?\n".format(*u)

    t+="{2}ing like a{0} {1},\n".format(*u)

print((h+'I hear children...\n\n'+t)[44:-30]+"...\nthat's what I hear.")

असल में, बस एक लूप जो कहानी के दो हिस्सों का प्रतिनिधित्व करते हुए दो तार बनाता है। 'n'[:'el'in n]हैंडल "एक" हाथी के लिए। [44:-30]बंद चॉप प्रमुख और लगने वाला "मैं एक ध्रुवीय भालू मेरी कान में लगाकर गुर्राता सुन" "एक चिड़ियाघर संचालक की तरह सीटी"।


1

QB64 (QuickBASIC), 581 बाइट्स

जब आप इसे दुभाषिया में फेंकते हैं तो कोड थोड़ा फैलता है, लेकिन यह स्रोत फ़ाइल के रूप में लोड करने के लिए मान्य है। यदि आप अतीत को स्क्रॉल करने से पहले पूरे आउटपुट को देखना चाहते हैं, तो आपको width 80,46शुरुआत में एक बयान जोड़ना होगा ।

READ a$,v$
FOR x=0 TO 10
?a$+", "+a$+", what do you hear?"
IF x>9THEN
?"I hear children...":?:?"...";
RESTORE
FOR y=0 TO 9
READ a$,v$
?v$+"ing like ";
CALL j(a$)
IF y<9THEN?", "ELSE?"...":?"that's what I hear."
NEXT
END
ELSE
READ a$,v$
?"I hear ";
CALL j(a$)
?" "+v$+"ing in my ear."
?
END IF
NEXT
DATA"Polar Bear","growl","Lion","roar","Hippopotamus","snort","Flamingo","flut","Zebra","bray","Boa Constrictor","hiss","Elephant","trumpet","Leopard","snarl","Peacock","yelp","Walrus","bellow","Zookeper","whistl"
SUB j (A$)
?"a";
IF LEFT$(A$,1)="E"THEN?"n";
?" "+LCASE$(A$);
END SUB

1
मैं जानता हूँ कि इस थोड़े देर हो चुकी है, लेकिन मुझे लगता है कि आप का उपयोग करके कुछ बाइट्स बचा सकता है GOSUB/ RETURNके बजाय CALL/ SUB/ END SUB। इसके अलावा, आप उन DATAसभी प्रविष्टियों के लिए उद्धरण छोड़ सकते हैं, जिनमें रिक्त स्थान नहीं है। अंत में, चूंकि केवल एक जानवर है जो एक स्वर से शुरू होता है, A$="Elephant"वास्तव में 1 बाइट से छोटा है LEFT$(A$,1)="E"। का अच्छा उपयोग RESTORE, BTW!
DLosc

1

LUA 535 बाइट्स

p=print a="growl.roar.snort.flut.bray.hiss.trumpet.snarl.yelp.bellow.whist"b="polar bear.lion.hippopotamus.flamingo.zebra.boa constrictor.elephant.leopard.peacock.walrus.zookeeper."z=a.gmatch(a,"%P+")x=b.gmatch(b,"%P+")w=''for j=1,11 do i=x()v=z()e=j==7 and'n 'or' 'p(j==1 and''or'I hear a'..e..i..' '..v..'ing in my ear.\n')w=w..(j>10 and''or v..'ing like a'..e..i..(j>9 and'...'or',')..'\n')y=i:gsub("^%l",a.upper):gsub("%s%l",a.upper)p(y..', '..y..' what do you hear?')end p('I hear children...\n')p('...'..w.."that's what I hear.")

ungolfed:

sound_list = "growl.roar.snort.flut.bray.hiss.trumpet.snarl.yelp.bellow.whist"
animal_list = "polar bear.lion.hippopotamus.flamingo.zebra.boa constrictor.elephant.leopard.peacock.walrus.zookeeper."

sound_it = string.gmatch(sound_list, "%P+")
animal_it = string.gmatch(animal_list, "%P+")
part_2 = ''

for i = 1, 11  do
    animal = animal_it()
    sound = sound_it()
    aORan = i == 7 and 'n ' or ' '

    print(i == 1 and '' or 'I hear a'..aORan..animal..' '..sound..'ing in my ear.\n')

    part_2 = part_2..(i > 10 and '' or sound..'ling like a'..aORan..animal..(i > 9 and '...' or ',')..'\n')

    big_animal = animal:gsub("^%l", string.upper):gsub("%s%l", string.upper)
    print(big_animal..', '..big_animal..' what do you hear?')
end

print('I hear children...\n')
print('...'..part_2.."that's what I hear.")

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


1

PHP, 366 बाइट्स

आलसी उत्तर, लेकिन जब gzip उपलब्ध हो तो कस्टम डिकम्प्रेसर क्यों लिखें?

PHP कोड के हेक्स डंप ( xxd -r के साथ बचाया जा सकता है )

0000000: 3c3f 3d67 7a69 6e66 6c61 7465 2827 7d53  <?=gzinflate('}S
0000010: c16a 8430 10bd e72b e6d6 cbe0 2f14 b6b4  .j.0...+..../...
0000020: b4d0 c3de 0abd 8d6e baca c64c 1823 62bf  .......n...L.#b.
0000030: be51 3354 1472 58f3 76de f864 e6bd 5cd9  .Q3T.rX.v..d..\.
0000040: 91c0 c592 20ec f1d4 5284 1bc3 cc23 b4a9  .... ...R....#..
0000050: f26c 3ed6 1308 5cc7 1e84 493a 7f87 ce43  .l>...\...I:...C
0000060: 3f43 222a 633e 1381 b03d 0bef b75d 081c  ?C"*c>...=...]..
0000070: 3852 3f0e 3078 9678 147a df75 20ec ff15  8R?.0x.x.z.u ...
0000080: 857f 1cf5 498a 1318 4f9a 6f99 4450 54d4  ....I...O.o.DPT.
0000090: fab5 b510 a4df 7c14 fa5e 1884 7c14 246a  ......|..^..|.$j
00000a0: 2668 d80f 51ba 26b2 a4b9 87e1 2876 6182  &h..Q.&.....(va.
00000b0: 97ff 1e84 63a1 f001 0fd6 d9d0 928f 1065  ....c..........e
00000c0: ec83 3dcd fc9a 7904 4565 632d 0792 5bf2  ..=...y.Eec-..[.
00000d0: 84c4 9dcc dd48 0405 25a5 60a9 e1e6 01b3  .....H..%.`.....
00000e0: 75e1 2874 dd38 0405 25a1 899c a494 d4d6  u.(t.8..%.......
00000f0: 399e 8e4a 5f2b 89a0 67c9 4ee6 87b5 c10a  9..J_+..g.N.....
0000100: 4cc9 86e8 4ea6 2a8f a0b0 b4fb a6ed dc4d  L...N.*........M
0000110: acaf aaf4 6e7a dc85 a755 d375 0fbb ccbf  ....nz...U.u....
0000120: dea4 3ab5 a211 2651 2adf 1e34 1a7b adb6  ..:...&Q*..4.{..
0000130: fb8c 1bcd 6f26 35d7 6896 3c2a a121 45a3  ....o&5.h.<*.!E.
0000140: c1ca d543 eed0 683a b465 971c 34d9 6ca5  ...C..h:.e..4.l.
0000150: 3404 68d4 3b1d 29bb 65b2 17ca a847 cb2a  4.h.;.).e....G.*
0000160: 624b f169 d8d6 b66d aa32 7f27 293b       bK.i...m.2.');

मैंने स्रोत पाठ को 349 बाइट्स को संपीड़ित डेटा में परिवर्तित करने के लिए zopfli के कुछ पुनरावृत्तियों का उपयोग किया , 'चरित्र से परहेज जो अन्यथा बैकस्लैश के साथ बचना होगा।


1

जाप , 308 303 299 295 288 280 294 289 286 बाइट्स

Unprintables का एक गुच्छा होता है; उन्हें देखने के लिए नीचे दिए गए लिंक का पालन करें।

`Pol BÁLiyHippopotam«yFlaÚÁoyZeßBoa CÆqÎtyE¤pÊCyLeopÂýPea¬ckyWalr«yZookeep`qy
`gwÓ2ÂüÍdfl©dßdÊdtruÛFdsnÓ)lpdÞ)owdØtl`qd
[¡[X',SX`, Ø º y Ê#?
I Ê# `Y<A?[Y¶5?``:'aSUg°Y v SVgY `g  my e.`R]¬:[`å,Á`Q='.³R²QU¯J £[Vv `g ¦ke `Y¶6?``:'aSXv]¬Ãq`,
` QR`È  's Ø I Ê#.`]¬]¬Ã·]¬

झसे आज़माओ

+14 बाइट्स का कारण यह है कि मैं वालरस की लाइन को देखूंगा; यह देखने के लिए कि क्या मुझे उन बाइट्स में से कोई भी वापस मिल सकता है, अगले सप्ताह एक और पास लेने की आवश्यकता होगी।


1

पॉवर्सशेल 921 889 886 898 बाइट्स

यह सही नहीं है, लेकिन यह 300 बाइट बचाता है :)

संपादित करें: धन्यवाद जोनाथन फ्रेच, मैंने 32 बाइट्स बचाए। और आउटपुट को सही करने के लिए Veskah का धन्यवाद।

filter Z($1,$2){while($1){$x,$1=$1
$y,$2=$2
[tuple]::Create($x,$y)}}
$0="ing"
$$="hear"
$1="I $$ a "
$3='in my ear.'
$a='Polar Bear'
$b='Lion'
$c='Hippopotamus'
$d='Flamingo'
$e='Zebra'
$f='Boa Constrictor'
$g='Elephant'
$h='Leopard'
$i='Peacock'
$j='Walrus'
$k='Zookeeper'
$v="children"
$2="roar$0"
$4="snort$0"
$5="flut$0"
$6="bray$0"
$7="hiss$0"
$8="trumpet$0"
$9="snarl$0"
$x="yelp$0"
$y="bellow$0"
$^="whistl$0"
$l="$1$b $2$3"
$m="$1$c $4$3"
$n="$1$d $5$3"
$o="$1$e $6$3"
$p="$1$f $7$3"
$q="I $$ an $g $8$3"
$r="$1$h $9$3"
$s="$1$i $x$3"
$t="$1$j $y$3"
$u="$1$k $^$3"
$z=' like a '
$w="I $$ $v..."
z $a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k $l,$m,$n,$o,$p,$q,$r,$s,$t,$u,$w|%{"$($_.item1),"*2+"what do you $$?";$_.item2;""}
"...growl$0$z$a,"
z $b,$c,$d,$e,$f $2,$4,$5,$6,$7|%{$_.item2+$z+$_.item1+","}
"$8 like an $g,"
z $h,$i $9,$x,$y|%{$_.item2+$z+$_.item1+","}
$y+$z+"Walrus..."
"that's what I $$."

öअधिक बाइट कुशल होने के बजाय मानक 7 बिट ASCII वर्ण का उपयोग नहीं करेगा ?
जोनाथन फ्रेच

इसके अलावा, मुझे लगता है कि एक लंबी फ़ंक्शन नाम के साथ आपकी पहली पंक्ति में कुछ शानदार व्हाट्सएप हैं।
जोनाथन फ्रेच

संकेत के लिए धन्यवाद :)! (मैंने I सिर्फ इसलिए इस्तेमाल किया क्योंकि सिखाया गया था कि मैं पहले से ही उपयोग किए जाने वाले सभी ASCII संकेतों XD का उपयोग करता हूं)
Add-TheNewOne

चरित्र öको केवल कुछ कोडपे में एकल बाइट का उपयोग करके दर्शाया गया है, इस चरित्र के लिए UTF-8 को दो बाइट्स की आवश्यकता होती है।
जोनाथन फ्रीच

आपका आउटपुट थोड़ा हटकर है। अंतिम श्लोक ध्रुवीय भालू को दोहराता है जो एक-एक करके सब कुछ बंद कर देता है और आप सीटी बजाते हैं जिसकी आवश्यकता नहीं है। यह एक दीर्घवृत्त भी याद कर रहा है। यह भी लिखता है an elephantकि पहले के श्लोक के बीच एक अतिरिक्त लाइन ब्रेक भी है जिसे हटाकर कुल्हाड़ी मार दी जा सकती है "n"
विस्कह

0

क्लोजर, 526 बाइट्स

(use 'clojure.string)(let[l lower-case
a(partition 2(split"Polar Bear,...growl,Lion,roar,Hippopotamus,snort,Flamingo,flut,Zebra,bray,Boa Constrictor,hiss,Elephant,trumpet,Leopard,snarl,Peacock,yelp,Walrus,bellow,Zookeeper,whistl,children,x"#","))b(map(fn[[w x][y e]][(str
w", "w", what do you hear?
I hear a "(l y)" "e"ing in my ear.

")(str x"ing like a "(l w))])a(rest a))r
replace](print(r(str(r(join""(map first b))#".*x.*""I hear children...")(join",
"(butlast(map last b)))"...
that's what I hear.")#"(?i)a(?= e)""an")))

यहाँ मेरा प्रारंभिक प्रयास है। यह प्रारूपण और कितना अपठनीय है प्यार करता हूँ। आशा है कि से चेतावनी use 'clojure.stringस्वीकार्य हैं।

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

प्रारूपित कोड:

(use 'clojure.string)
(let [animal-sound (partition 2 (split "Polar Bear,...growl,Lion,roar,Hippopotamus,snort,Flamingo,flut,Zebra,bray,Boa Constrictor,hiss,Elephant,trumpet,Leopard,snarl,Peacock,yelp,Walrus,bellow,Zookeeper,whistl,children,x" #","))
      sentences (map (fn [[animal-1 sound-1] [animal-2 sound-2]]
                       [(str animal-1 ", " animal-1 ", what do you hear?\nI hear a "
                             (lower-case animal-2) " " sound-2 "ing in my ear.\n\n") (str sound-1 "ing like a " (lower-case animal-1))])
                     animal-sound (rest animal-sound))]
  (print (replace (str
                    (replace (join "" (map first sentences)) #".*x.*" "I hear children...")
                    (join ",\n" (butlast (map last sentences)))
                    "...\nthat's what I hear.") #"(?i)a(?= e)" "an")))

0

जावा, 571 555 538 या 516 बाइट्स

String p(){String r="",z="...",b,x;String[]a="Polar Bear!Lion!Hippopotamus!Flamingo!Zebra!Boa Constrictor!Elephant!Leopard!Peacock!Walrus!Zookeeper!growling!roaring!snorting!fluting!braying!hissing!trumpeting!snarling!yelping!bellowing!whistling".split("!");for(int i=1;i<11;i++){b=i==6?"n ":" ";x=a[i-1];z+=a[i+10]+" like a"+b+x+(i==10?"...":"\n");r+=x+" , "+x+", what do you hear?\n I hear a"+b+a[i].toLowerCase()+" "+a[i+11]+" in my ear.\n\n";}r+=a[10]+" what do you hear?\n\tI hear children...\n"+z+"\nthat's what I hear.";return r;}

लेकिन JShell में परिणाम प्राप्त करने के लिए केवल 516 बाइट्स की आवश्यकता होती है

String r="",z="...",b,x;String[]a="Polar Bear!Lion!Hippopotamus!Flamingo!Zebra!Boa Constrictor!Elephant!Leopard!Peacock!Walrus!Zookeeper!growling!roaring!snorting!fluting!braying!hissing!trumpeting!snarling!yelping!bellowing!whistling".split("!");for(int i=1;i<11;i++){b=i==6?"n ":" ";x=a[i-1];z+=a[i+10]+" like a"+b+x+(i==10?"...":"\n");r+=x+" , "+x+", what do you hear?\n I hear a"+b+a[i].toLowerCase()+" "+a[i+11]+" in my ear.\n\n";}r+=a[10]+" what do you hear?\n\tI hear children...\n"+z+"\nthat's what I hear."

यह रिक्त स्थान, टैब, लोअरकेस और anबनाम के बारे में गलत आउटपुट दे रहा हैaमैंने इसे 507 बाइट्स में
केविन क्रूज़सेन

@KevinCruijssen आपके कोड को "I सुने एक ... ... ** ing ** मेरे कान में" याद आ रहा है। इसके अलावा, शुरू करने से बहुत संभावना golfable iसाथ 0अप करने के लिए 10बदल रहा है b=a[i-1]के साथ b=a[i++]और वेतन वृद्धि जहां यह वर्तमान में है को हटाने।
ओलिवियर ग्रेजायर

0

स्विफ्ट 2, 519 बाइट्स

var a=["Polar Bear","Lion","Hippopotamus","Flamingo","Zebra","Boa Constrictor","Elephant","Leopard","Peacock","Warlus","Zookeeper"],b=["...growl","roar","snort","flut","bray","hiss","trumpet","snarl","yelp","bellow","whistl"].map{"\($0)ing"},c=a.enumerate().map{"\($0.0==6 ?"an":"a") \($0.1)".lowercaseString},i=0,j=0
while i<11{print("\(a[i]), \(a[i++]), what do you hear?\nI hear \(i>10 ?"children...":"\(c[i]) \(b[i]) in my ear")\n")}
while j<10{print("\(b[j]) like \(c[j++])\(j>9 ?"...\nthat's what I hear.":",")")}

0

हास्केल 537 499 497 बाइट्स

import Data.Char
a&b=a++b
b=putStr
c=concat
d=init
e('E':s)="an e"&s
e s="a "&map toLower s
f="I hear "
l=zip(lines"Polar Bear\nLion\nHippopotamus\nFlamingo\nZebra\nBoa Constrictor\nElephant\nLeopard\nPeacock\nWalrus\nZookeeper")$words"growl roar snort flut bray hiss trumpet snarl yelp bellow whistl"
main=(b.drop 41.c)[f&e n&" "&v&"ing in my ear.\n\n"&n&", "&n&", what do you hear?\n"|(n,v)<-l]>>b(f&"children...\n\n..."&(d.d.c)[v&"ing like "&e n&",\n"|(n,v)<-d l]&"...\nthat's what I hear.\n")

इस कन्वेंशन का उपयोग करना कि एक समाधान निष्पादन योग्य नहीं है, केवल कुछ फ़ंक्शन के माध्यम से आउटपुट का उत्पादन करता है, इसे 479 बाइट्स तक छोटा किया जा सकता है। उत्पादन में है g:

import Data.Char
a&b=a++b
c=concat
d=init
e('E':s)="an e"&s
e s="a "&map toLower s
f="I hear "
l=zip(lines"Polar Bear\nLion\nHippopotamus\nFlamingo\nZebra\nBoa Constrictor\nElephant\nLeopard\nPeacock\nWalrus\nZookeeper")$words"growl roar snort flut bray hiss trumpet snarl yelp bellow whistl"
g=(drop 41.c)[f&e n&" "&v&"ing in my ear.\n\n"&n&", "&n&", what do you hear?\n"|(n,v)<-l]&f&"children...\n\n..."&(d.d.c)[v&"ing like "&e n&",\n"|(n,v)<-d l]&"...\nthat's what I hear.\n"

0

सी (क्लैंग) , 552 बाइट्स

(*P)()=printf;l(char*s){for(;*s;s++)putchar(*s>64?*s|32:*s);}char*a[]={"Zookeeper","Walrus","Peacock","Leopard","Elephant","Boa Constrictor","Zebra","Flamingo","Hippopotamus","Lion","Polar Bear"},*s[]={"whistl","bellow","yelp","snarl","trumpet","hiss","bray","flut","snort","roar","growl"};f(i){for(i=11;i--;)P("%s, %s, what do you hear?\nI hear%s ",a[i],a[i],i?i^5?" a":" an":""),i?l(a[i-1]):0,P(i?" %sing in my ear.\n\n":"children...\n\n...",s[i-1]);for(i=11;--i;)P("%sing like a%s ",s[i],i^4?"":"n"),l(a[i]),P(i-1?",\n":"...\nthat's what I hear.");}

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



0

पर्ल 5 , 413 बाइट्स

@t=('Polar Bear',growl,Lion,roar,Hippopotamus,snort,Flamingo,flut,Zebra,bray,'Boa Constrictor',hiss,Elephant,trumpet,Leopard,snarl,Peacock,yelp,Walrus,bellow,Zookeeper,whistl);say$_=$t[$i],", $_, what do you hear?
I hear ",/Zo/?"children...
":"a".n x(/C/).lc" $t[$i+=2] $t[$i+1]ing in my ear.
"while!/Zo/;pop@t;pop@t;print'...';say+(shift@t)."ing like a ".lc.(@t?",":'...')while$_=shift@t;say"that's what I hear."

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


0

जावास्क्रिप्ट, 424 बाइट्स

f=(x=0,a=btoa`>Z¯ ^j¼Ëó*i¢-jk¬ÌYZ)à£6^n¶³²
춸¶óW©©íÌ·¨¥ªÝÌ÷r$Íf¥®ë3f$yê^¯0`[s=`split`]`y`.join` `[s]`z`,g=z=>n[z]+`ing like `+h(17)+l(z)+(z>9?`...
that's what I hear.`:`,
`+g(++z)),h=m=>++x%m?`a `:`an `,l=y=>a[y].toLowerCase(n=btoa`º0:èj¼ìíÍùn·6ëk,áË3¶»¦¥ës²v«<ÛzYhÃ<!ËeÌ`[s]`z`))=>a[x]+`, ${a[x]}, what do you hear?
I hear `+(x>9?`children...

...`+g(0):h(6)+l(x)+` ${n[x]}ing in my ear.

`+f(x))

झसे आज़माओ


0

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

L:b"a e""an e"y>sm.F"
I hear a {1} {0} in my ear.

{2}, {2}, what do you hear?"+dr3edJC,+R"ing"c"growl
roar
snort
flut
bray
hiss
trumpet
snarl
yelp
bellow
whistl"bc"polar bear
lion
hippopotamus
flamingo
zebra
boa constrictor
elephant
leopard
peacock
walrus
zookeeper"b42"I hear children...
"jPPysm+j" like a "d",
"PJc2*6\."that's what I hear.

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

अनुसरण करने की व्याख्या।

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