แมวร้องเหมียว"


31

cat ไป "Meow"

เราทุกคนคุ้นเคยกับแนวคิดของcatโปรแกรม ผู้ใช้พิมพ์บางสิ่งในนั้นมันสะท้อนกลับไปยังผู้ใช้ ง่าย. แต่ทุกcatโปรแกรมที่ฉันเคยเห็นมามีความจริงเพียงอย่างเดียวที่ขาดหายไป: a cat"Meow" ดังนั้นงานของคุณคือการเขียนโปรแกรมที่สำเนาทั้งหมดSTDINไปSTDOUT เว้นแต่เข้าเป็นในกรณีที่โปรแกรมของคุณควรเอาท์พุทcatcat goes "Meow"

เกณฑ์การให้คะแนน

นี่คือดังนั้นคะแนนของคุณคือจำนวนไบต์ของคุณด้วยตัวดัดแปลงบางอย่าง:

  • หากโปรแกรมของคุณใช้ได้กับสัตว์อื่น ๆ นอกเหนือจากcat(เช่นcow: cow goes "Moo") สำหรับสัตว์เพิ่มเติมแต่ละตัว: -10
  • หากโปรแกรมของคุณไม่ใช้คำว่า "cat": -15
  • หากโปรแกรมของคุณตอบกลับfoxด้วย "สุนัขจิ้งจอกพูดว่าอะไร": -25

สัตว์และเสียงที่ไปด้วยกัน:

cow goes moo duck goes quack sheep goes baa bees go buzz frogs go croak

อนุญาตให้มีสิ่งอื่นใดในรายการนี้

กฎระเบียบ

  • ช่องโหว่มาตรฐานใช้
  • คุณต้องไม่เขียนอะไรลงไป STDERR
  • คุณสามารถใช้เครื่องหมายคำพูดเดี่ยว / ไม่มีเครื่องหมายคำพูดแทนเครื่องหมายคำพูดคู่

ลีดเดอร์บอร์ด

นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา

เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:

## Language Name, N bytes

ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น

## Ruby, <s>104</s> <s>101</s> 96 bytes

หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของสองไฟล์หรือคุณต้องการแสดงรายการการลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:

## Perl, 43 + 2 (-p flag) = 45 bytes

นอกจากนี้คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างกระดานแต้มนำ:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


16
สำหรับโบนัส: สุนัขจิ้งจอกพูดว่าอะไร?
Stewie Griffin

1
สำหรับโบนัส: สัตว์เพิ่มเติมแต่ละตัวสามารถเป็นเอกพจน์หรือ "ผึ้ง" จะต้องเป็นพหูพจน์เช่นเดียวกับในรายการของคุณหรือไม่
ProgramFOX


1
แทนที่จะใช้เครื่องหมายคำพูดคู่คุณสามารถใช้เครื่องหมายคำเดี่ยวได้หรือไม่ นอกจากนี้คุณสามารถส่งออกไปยัง stderr ได้หรือไม่?
บลู

คำตอบ:


17

Pyth, 231-255 = -24 ไบต์

-24 * 10 สัตว์พิเศษ -15 สำหรับไม่มี "cat" สายอักขระ

pzI}zJv.Z"xÚ]Arà E¯âñMOÛ|°
Ø¢mÞ½`&ÉR¯'_ãPÍm1;ñÝ|,F ¹×z#½öÂ÷ÜAPúõMh#Ì©UOC *CѰk%¹ö´qÌzj,å<&{jàRFÖ(¥s    ñ`GÂ:çkô#ù\M+üqíéaw ÑuW6Lã,¶w/'87ö×_r]¢:jkz»ÚFÙ¦ÈcÅËØíëûÖOa¿Þµ´6 ø¡ãEþþ:"jk(" goes "N@JzN

เชื่อมโยงไปยังรหัส

pseudocode

Auto assign z to input
print z
J = decompress animal-sound dict
if z in J:
    print " goes ", J[z], '"'

สัตว์รู้:

{'hare': 'squeak', 'seal': 'bark', 'lion': 'growl', 'rook': 'hiss', 'sheep': 'baa', 'hamster': 'squeak', 'moose': 'bellow', 'grasshopper': 'chirp', 'rhinoceros': 'bellow', 'cat': 'meow', 'tiger': 'growl', 'stag': 'bellow', 'crow': 'caw', 'okapi': 'bellow', 'snake': 'hiss', 'cicada': 'chirp', 'badger': 'growl', 'dog': 'bark', 'cricket': 'chirp', 'tapir': 'squeak', 'bird': 'chirp', 'sparrow': 'chirp', 'lamb': 'baa', "frog": "croak", "raven": "croak"}

16
ฉันรู้สึกว่าโบนัสควรเป็น -10% ไม่ใช่ -10 ไบต์ ที่จะให้ผลตอบแทนลดลงเพื่อป้องกันการละเมิดเช่นนี้ (และนั่นคือ 10% คูณในแต่ละครั้งไม่ใช่ 10% ของต้นฉบับที่เพิ่มขึ้นมิฉะนั้นคุณจะต้องการสัตว์ 10 ตัวที่จะได้คะแนน 0 ไม่ว่ารหัสจะยาวแค่ไหน ... )
Darrel Hoffman

@DarrelHoffman ฉันจะจำไว้ว่าสำหรับความท้าทายในอนาคตทั้งหมด

คุณทำให้หัวของฉันระเบิดได้สำเร็จและฉันก็ไม่รู้ว่าสุนัขจิ้งจอกพูดอะไร +1
kirbyfan64sos

นกกาจะบ่นเหรอ?
Magic Octopus Urn

@carusocomputing ตามวิกิพีเดียมันทำ ฉันคิดว่าพวกเขาไปsqualkเอง
บลู

7

TeaScript , 29 - 15 = 14 ไบต์

catไม่ได้ใช้สตริง

xr(/^c\at$/,'$& goes "Meow"')

"สุนัขจิ้งจอกพูดว่าอะไร" (length = 21) นานกว่าโบนัสนั้นคุ้มค่า


โบนัสสุนัขจิ้งจอกตอนนี้คุ้มค่า!

5

CJam, 12 ไบต์

q_:)"dbu"=" goes \"Meow\""*

โปรแกรมมีความยาว27 ไบต์และไม่ใช้คำcat( -15 ไบต์ )

ลองมันอินไลน์ในล่าม CJam

มันทำงานอย่างไร

q_                e# Read all input and push a copy.
:)                e# Increment all code points of the copy.
"dbu"=            e# Push 1/0 if the result is/isn't "dbu".
" goes \"Meow\""* e# Repeat the string that many times.

10
ฉันชอบรอยยิ้ม:)
ETHproductions

4

APL (Dyalog) , 28 - 15 = 13 ไบต์

{⍵,' goes "Meow"'/⍨⍵≡⌽'tac'}

อินพุตตามด้วยgoes "Meow"ถ้าอินพุตเทียบเท่ากับtacย้อนกลับ

ลองออนไลน์!

{} ฟังก์ชั่นไม่ระบุชื่อ

⌽'tac' ย้อนกลับสตริง (เพื่อรับโบนัส -15 โดยหลีกเลี่ยงอักขระcat)

⍵≡ บูลีนว่าอาร์กิวเมนต์นั้นเหมือนกันหรือไม่

' goes "Meow"'/⍨ ใช้เพื่อกรองสตริง (เช่นส่งคืนสตริงว่างถ้า false)

⍵, ผนวกเข้ากับข้อโต้แย้ง



3

JavaScript, 45 - 15 = 30/264 - 235 = 29

alert((s=(d='MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/))[d.indexOf(i=prompt())-23])?i+' goes "'+s+'"':i)

ข้อเสีย: คุณต้องเขียนชื่อสัตว์ด้วยอักษรตัวแรกเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือเป็นตัวพิมพ์เล็ก ดูด้านล่างสำหรับรุ่นอื่นที่แก้ไขปัญหานี้ รุ่นนี้หนีaแมวที่อยู่ใน\x61และมีรหัสสำหรับสัตว์พิเศษ 22 ตัวจากรายการนี้ (สัตว์ที่ได้รับอนุญาตทั้งหมดที่มีคำที่สั้นพอที่จะคุ้มค่า):

ผึ้งฉวัดเฉวียน 7
นกเพลง 8
วัวหมู่ 9 หมู่
วัว 6
อีกา caw 7
เปลือกสุนัข 7
เป็ดนักต้มตุ๋น 9
กบบ่น 9
ม้า hiss 9
หมู oink 7 หมู oa 7
แกะ Baa 7 เล่น
ร้องเพลง 8
สิงโตคำราม 8
วัวต่ำ 5
นกพิราบขัน
7
ประทับตราเปลือก 8
แกะ Baa 8
งูเปล่งเสียงดัง 9
หงส์ร้อง 7
เสียงคำรามของเสือ 9
ปลาวาฬร้องเพลง 9

(ขอบคุณเพื่อนของฉันที่ช่วยฉันทำงานที่น่าเบื่อในการทำรายการนี้)

รหัสไม่ได้รับการตอบกลับ:

data = 'MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/);

input = prompt();
index = data.indexOf(input);
sound = data[index-23];
result = sound ? input + ' goes "' + sound + '"' : input;
alert(result);

รุ่นแรก 45 ไบต์ - 15 โบนัส = 30

alert((i=prompt())=='\x63at'?i+' goes "Meow"':i)

ใช่ฉันรู้. ฉันไปจาก 30 ถึง 29 กับงานพิเศษทั้งหมด มันสนุก!

เวอร์ชันที่อนุญาตให้ใช้ตัวพิมพ์เล็กเต็ม 294 ไบต์ - 235 โบนัส = 59

alert((s=(d='MeowBuzzSongMooMooCawBarkQuackCroakHissOinkBaaSingRoarLowCooCawBarkBaaHissCryRoarSingC\x61tBeeBirdCattleCowCrowDogDuckFrogHorseHogLambLarkLionOxPigeonRookSealSheepSnakeSwanTigerWhale'.split(/(?=[A-Z])/))[d.indexOf((i=prompt())[0].toUpperCase()+i.slice(1))-23])?i+' goes "'+s+'"':i)

ฉันพยายามลบปลอกออกจากอาร์เรย์ข้อมูลด้วย.join().toLowerCase().split(',')แต่มันก็จบลงด้วยการใช้อักขระ 297 ตัวแทน


แก้ไข: เครื่องหมายคำพูดคงที่และตัวพิมพ์ใหญ่บน meow (แม้ว่าคำถามจะไม่สอดคล้องกับตัวพิมพ์ใหญ่)
Domino

และ ... งานของฉันเสร็จที่นี่พิสูจน์ว่า -10 โบนัสเพียงพอแล้ว :)
Domino

3

JavaScript, 81 - 20 - 15 = 46 ไบต์ 50 - 15 = 35 ไบต์

(o=prompt()=="ca"+"t")&&o+=' goes "Meow"';alert(o)

คุณสามารถวางคู่คำพูดรอบMeow
Anotherdave

ไม่นั่นเป็นส่วนหนึ่งของคำถาม
Domino

แล้วจะ'c\at'เป็น'ca'+'t'อย่างไร
Gustavo Rodrigues

alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a). ทำไมไม่แม้แต่วางการแจ้งเตือน? ส่งคืนผลลัพธ์ไปยังคอนโซลแล้ว
Gustavo Rodrigues

2

รุ่น GNU, 37 - 15 = 22 ไบต์

sed -r 's/^(\x63at)$/\1 goes "Meow"/'

sed '/ ^ c [a] t $ / s / $ / go "Meow" /' บันทึกไม่กี่ไบต์ แต่โบนัส 5% ใหม่นั้นไร้ค่าเมื่อเทียบกับโบนัส 15 ไบต์ดั้งเดิมที่ไม่มี "cat"
Glenn Randers-Pehrson

@ GlennRanders-Pehrson ไม่มีอีกแล้ว!

2

MATLAB, 58 - 15 = 43 ไบต์

ตรงไปตรงมาพร้อมกับโบนัสที่ไม่ได้ใช้catในรหัส:

x=input('');if isequal(x,'dbu'-1);x=[x ' goes "Meow"'];end;x

' 'การป้อนข้อมูลจะต้องได้รับภายในราคาเดียว:


ในรูปแบบปัจจุบันสิ่งนี้จะไม่ส่งออกอย่างถูกต้องหากได้รับ 'cat' เป็นอินพุต คุณอาจลืมx =ภายในคำสั่ง if
slvrbld

แต่ฉันจะให้เคล็ดลับแก่คุณเพื่อให้ชนะไบต์เหล่านี้บวกอีก 2: แทนที่ if-statement ของคุณทั้งหมดโดย: if ~ ใด ๆ (x-'dbu '+ 1)
slvrbld

@slvrbld ขอบคุณที่สังเกตเห็นมันเกิดขึ้นหลังจากที่ฉันแก้ไข BTW: คำแนะนำของคุณใช้ไม่ได้กับอินพุตที่ไม่ใช่ 3 ตัวอักษร =)
Stewie Griffin

อ่าคุณถูกต้อง ฉันมุ่งเน้นไปที่แมวและจิ้งจอกมากเกินไปและลืมเรื่องที่เหลือไป
slvrbld

2

Javascript, 117 ไบต์

for(c=0,s="bee.Buzz.bird.Song.c\at.Meow.cow.Moo.crow.Caw.dog.Bark.oxen.Low.owl.Who.rook.Caw.sheep.Baa.swan.Cry".split('.'),p=prompt(),a=![];c<s.length;c+=2){if(p==s[c])a=c}if(!a)alert(p=='fox'?'What does the fox say':p);else alert(s[a]+' goes "'+s[a+1]+'"')

ฉันไม่ได้ชนะแน่นอนที่นี่ แต่ฉันได้ครอบคลุมสัตว์พิเศษมากมาย

Javascript, 31 ไบต์

p=prompt();alert(p=='c\at'?p+' goes "Meow"':p)

2

HALT , 71 - 15 = 56 ไบต์

1 IF "cat" 2 ELSE 3
2 TYPE "MEOW";HALT
3 SET 0;NEXT
4 INCREMENT;STORE 0

HALT เป็นภาษาที่ฉัน (@Downgoat) ที่ออกแบบมาสำหรับการประมวลผลสตริงปัญหาเดียวคือมันยาวไปหน่อย

ที่จัดรูปแบบ

1              IF "cat" 2 ELSE 3
2 TYPE "MEOW"; HALT
3 SET 0      ; GOTO 6
4 INCREMENT  ; STORE 0

2

Python 3, 81 70 55 46 - 15 = 31 ไบต์

ขอบคุณ Stewie Griffin ที่ช่วยประหยัด 15 ไบต์

ขอบคุณ grc สำหรับการบันทึก 8 ไบต์

การไม่ใช้สตริงcatให้ -15 ไบต์

y=input()
print(y+' goes "Meow"'*(y=="ca""t"))



1

ทับทิม, 49 46 50 - 15 = 35 ไบต์

ค่อนข้างตรงไปตรงมาฉันเดา ไม่ได้ใช้แมว

$<.map{|l|puts l==?c+'at
'??c+'at goes "Meow"':l}

แก้ไข: ขอบคุณสำหรับ @ w0lf สำหรับการบันทึก 3 ไบต์!


เห็นได้ชัดว่าไม่จำเป็นต้องมีchop: ideone.com/lTpShD
Cristian Lupascu

@ w0lf "cat \ n"! = "cat" (อย่างน้อยมันก็ไม่ได้ผลสำหรับฉัน) ฉันเดาว่า STDIN ของ ideone จะไม่มีการขึ้นบรรทัดใหม่ตามมา
Peter Lenkefi

ยุติธรรมพอฉันเห็นว่าตัวตนของฉันผิดตรงไหน จากนั้นคุณสามารถลองทำสิ่งนี้เพื่อทำให้รหัสสั้นลง
Cristian Lupascu

@PeterLenkefi ยังมีแมวเหลืออยู่ในรหัสของคุณ ... คุณลืมที่จะอัปเดตหรือ ...
Stewie Griffin

@StewieGriffin ประณามฉันฉันทำ! มัลติทาสกิ้งของฉันไม่ได้อยู่ด้านบน อย่างไรก็ตามใน 5 นาทีฉันจะอัปเดตอีกครั้ง
Peter Lenkefi

1

PHP, 1204 - (10 * 64) - 15 - 20 = 529 ไบต์

<?php $i = $argv[1];$s = json_decode(gzuncompress(hex2bin("78da555351b2db200cbc8a27dfee057a1b192bc018104f40dcbccebb7b25d9499d8fcc588b10abddcddf1b64e4e8a04c3bd1eac86db7df3774e136dfa0744c5451805688bb400bac1e5900cfb42703ba1e3bc6e3ce82dabe8cef6f2d22af52b910b95ad93b72d173a22c8083f4d0f63bc75c131aa2e332d2ae45886e43ed7769082f438afc52027df46b20182af457b83c24537ad2c199484b99f6fe669dd9afcd6cc70ef67972a03bb8c10915abb12aa995bc7206deac48555818a9e80ea46cf8142020fe0aa0ccd761327e0db00e046f745426d0c531610d22af609d47aea8dade91d998ad447aebcef6aef0b32d7d64b8df4ddd84a0173c436b816a35475efbf8110bc254a3bf6a1420b76e7d1788f1a346ceb14f8e61b98c0bc44ddb0a46afe284582b55ea9087e1af2004236b3999278a452726c8cb8bef3c2d0086b14ad362f1f3b4032fe67b8aa59cae88742744aab26ccff3f47a2583af11ad0f344c0a1119910553b2d864929562270577b14a87d10635ea351a3e0895572ffd11f0f8ac0867fadf36898668249c65a732448e387de481c1c96931272598863c8ed09ec6b17020874c5792ac1e5bea8ee234c7c238df1a42faff449360552b55c05660d3d5426c4dcb0a7c26f874ac75f0d7a7da0e079da7145d74f848418fc71f5a75d652947a4e1edd469715fae023e29e96c3b0c748027e847a87c4ef4cc893820438722f666bc9a6cb69facf3f28e87499")));echo array_key_exists($i,$s)?"$i goes {$s->$i}":($i=="fox"?"What does the $i say":$i);

ฉันใช้ json encoded gz ซึ่งถูกบีบอัดอาร์เรย์ของเสียงสัตว์ นี่หมายความว่ามันใช้ได้กับสัตว์ที่ได้รับอนุญาตทั้ง 65 ตัว แต่สคริปต์ของฉันมีขนาดใหญ่มาก ใช้ได้กับสุนัขจิ้งจอกด้วยและไม่มีคำว่าแมวอยู่


1

MATLAB, 46 ไบต์

regexprep(input(''),'^cat$','cat goes "Meow"')

เล็กน้อยเป็นที่ยอมรับ อินพุตต้องถูกกำหนดในเครื่องหมายคำพูดเดี่ยว


ฉันไม่แน่ใจ แต่ฉันคิดว่าans = .. โดยทั่วไปจะไม่ได้รับการยอมรับหากความท้าทายคือการพิมพ์บางอย่าง ฉันไม่แน่ใจว่ามันเป็นฉันทามติ แต่เป็นเรื่องปกติที่จะใช้dispหรืออะไรที่คล้ายกัน
Stewie Griffin

+1 แม้ว่าจะสั้นกว่าของฉัน =)
Stewie Griffin

1

บีม , 208 206 - 15 = 191 ไบต์

ไม่ใช่รายการแข่งขัน แต่เป็นเรื่องสนุกที่ต้องทำ catมันจะตรวจสอบครั้งแรกสำหรับตัวอักษรของการป้อนข้อมูลกับ หากได้รับไม่ตรงกันจะเป็นทางลัดไปยังโปรแกรม cat มาตรฐาน ถ้ามันตรงกับมันจะผนวกgoes "Meow"

'''''''''>`\/n@>`)'''>`++\
/++++++++++/r /SP''+(++++/
\+)'PSrn@--S/ \rn@`>`)rn'''''>`++++++)++@P'p++++@'p-----@`p++@'p-@``p@++@'''''>`+++++++++)--@'p++@'p-----@++++++++@``p++@H
/@<  (`<     < `<    ''<
>ruH

1

Java = 222 ไบต์ (บีบอัด)

public class A {public static void main(String[] args) {Scanner a=new Scanner(System.in);for(;;){String b=a.nextLine();if(!b.equalsIgnoreCase("cat"))System.out.println(b);else {System.out.println("meow");System.exit(0);}}}

หรือฉันสามารถขยายมัน

Batch = 52 ไบต์

set /p k=
if "k"=="cat" (echo cat) ELSE (echo %k%)

1

Javascript: 48 ตัว, 48 ไบต์

function(s){return (s=="cat")?"cat goes meow":s}

ทดสอบ

=>"หมา"

<="หมา"

=>"แมว"

<="แมวร้องเหมียว"


การทำงานที่ดี! s=="cat"คุณสามารถวางวงเล็บรอบ นอกจากนี้สตริงของแมวควรจะเป็นcat goes "Meow"ดังนั้นจึง'function(s){return s=="cat"?'cat goes "Meow"':s}ถูกต้องสมบูรณ์
ETHproductions

หากคุณต้องการประหยัดมากขึ้นคุณสามารถใช้ ES6: s=>s=="cat"?s+' goes "Meow"':s(30 ไบต์)
ETHproductions

@ETHproductions OOooh มันดีนะ! ฉันไม่รู้ว่ามันเป็นประเภทของการเชื่อมโยงหรือเปล่า?
Fuzzyzilla

@Fuzzyzilla เป็นส่วนหนึ่งของ JavaScript รุ่นใหม่ที่เรียกว่า "ES6" ลิงก์ไปยังไวยากรณ์ของฟังก์ชันและภาพรวมใหม่ ต่อไปนี้เป็นเคล็ดลับสำหรับ ES6และเคล็ดลับสำหรับ JavaScript โดยทั่วไป
Downgoat

1

Haskell, 52-15 = 37 ไบต์

c"\99at"="\99at goes \"Meow\""
c s=s
main=interact c

ใช้\99แทน c ใน“ cat” เพื่อรับโบนัส 15 ไบต์


1

O , 22 16 14 ไบต์

29 ไบต์ - 15

Q "tac" `J = J" ไปที่ \ "Meow \" "+ Q?

มันยาวและสามารถตีกอล์ฟได้มากกว่านี้



1

Pyth, 82-95 = -13 ไบต์

+z*}zKc."atÜiÃ'4ãl¾Eªîiû<-È&e"\jjk[d"goes"dNr@c."bw««[áÅ3ÏB"\c%x`Kz3 3N

ในที่สุดฉันก็เริ่มแปลงรายการ Python 2 ของฉันไปเป็น Pyth มันไม่ชนะคู่แข่งอันดับต้น ๆ เปลี่ยนการซิปสัตว์รวมกันเป็นพจนานุกรมขนาดใหญ่ลดคะแนนเร็วกว่าการเชื่อมโยงสัตว์กับเสียงอย่างชาญฉลาด สิ่งนี้สนับสนุนสัตว์ 8 ชนิดนอกเหนือไปจากแมว: แรด, โอกาปิ, กวางมูซ, สิงโต, เสือ, แบดเจอร์, ฮิปโปและยอง

ลองออนไลน์


1

Japt 25 25 = 10 24-15 = 9 ไบต์

ลอง Japt เป็นครั้งแรก:

N¦`¯t`?N:`¯t goƒ \"´ow\"

ƒควรแทนที่ด้วยอักขระที่ไม่สามารถพิมพ์ได้คอมU+0083 ไพล์เป็น:

N!="cat"?N:"cat goes \"meow\""

โซลูชันเก่า:

N¥`¯t`?`¯t goƒ \"´ow\"`:N

ลองที่นี่


ค่อนข้างดี! ขออภัยฉันจำเป็นต้องใช้แบ็กสแลช
ETHproductions

เนื่องจากรหัสมีอักขระที่ไม่สามารถพิมพ์ได้ซึ่ง Markdown ทิ้งคุณสามารถเพิ่มลิงค์ได้หรือไม่?
ETHproductions

เพิ่มการเชื่อมโยงและทำไมจึงU+0083เปลี่ยนU+0192หรือƒเมื่อคุณเรียกใช้ตัวอย่างนี้:"\u0083".charCodeAt()
ผู้ใช้ทั่วไป

ฉันไม่มีเงื่อนงำ ฉันดูเหมือนจะทำซ้ำไม่ได้
ETHproductions

1

Pyth, 26-15 (ไม่ใช่ "cat") = 11 ไบต์

โปรแกรม Pyth ครั้งแรกของฉัน!

Iqz_"tac"+z" goes meow";Ez

ลองที่นี่

ชี้แจง

   _"tac"                   # Reverse the string "tac"
Iqz                         # If the input equals "tac" reversed
         +z" goes meow";    # Append " goes meow"
                        Ez  # Else, use the input.
                            # Implicit: print the input, if it's used.

1

C ++ 11, 316 - 11 * 10 - 15 = 191 ไบต์

#include <map>
#define t(a,b){#a,#b},
using s=std::string;int main(){std::map<s,s>m{t(cow,moo)t(crow,caw)t(dog,bark)t(hog,oink)t(lark,sing)t(lion,roar)t(oxen,low)t(rook,caw)t(seal,bark)t(sheep,baa)t(swan,cry){"c""at","meow"}};s l;while(int i=~getchar())l+=~i;printf("%s",(m[l]==""?l:l+" goes \""+m[l]+'"').c_str());}

คอมไพล์ได้ดีกับ VisualStudio GCC อยากให้ผมและ#include <string> #include <cstdio>มันจะสั้นกว่านี้ถ้าฉันจะไม่ขอโบนัส แต่ฉันยังคงหวังว่าผู้เขียนจะทำการปรับโบนัส ฉันไม่สามารถนึกถึงภาษาที่ให้คำจำกัดความcow -> mooสั้นกว่า 10bytes ค่าใช้จ่ายในการ3+key+valueขุดไบต์สำหรับสัตว์เพิ่มเติมและแบน22+17 bytes for defining structure and so.

Ungolfed

#include <map>

#define t(a, b) { #a, #b },
using s = std::string;
int main()
{
    std::map<s, s> m{
        t(cow,moo)
        t(crow,caw)
        t(dog,bark)
        t(hog,oink)
        t(lark,sing)
        t(lion,roar)
        t(oxen,low)
        t(rook,caw)
        t(seal,bark)
        t(sheep,baa)
        t(swan,cry)
        { "c""at", "meow" }
    };
    s l;
    while (int i = ~getchar())
        l += ~i;
    printf("%s", (m[l] == "" ? l : l + " goes " + m[l]).c_str());
}

"t(crow,caw)" has a length of 11. So getting rid of that to "t(swan,cry)" would drop 14 bytes. And admittedly make it less fun :(
Noodle9

@user, As I said, I still hope author revises bonuses.
Zereges

You should state C++11 in the headline. Python 2 and 3 are also always distinct noted. While the using is no big deal, the initializer list is.
Karl Napf

@KarlNapf Thanks for pointing that out.
Zereges

You can also change #include <map> to #import<map> for -2 bytes. The space before < can be omitted and #import throws some warnings but is accepted be GCC and MSVC
Karl Napf

0

Pyth, 31 - 15 = 16 bytes

You can try it out here

In+C99"at"zz;E+z" goes \"Meow\"

Explaination:

I                                # If-statement
 n                               # not equal
  +C99"at"                       # Adds the char 99 with the string "at" = "cat"
          z                      # z, the user input
           z                     # Print the user input
            ;                    # Ends all open parentheses
             E                   # Else-statement
              +z" goes \"Meow\"  # Adds ' goes "Meow"' to z and prints the result

1
C99 can be replaced with \C. It's still +\C"at", so you can keep the bonus.
clap


0

PHP, 70-15 = 55 bytes

<?=$l=rtrim(stream_get_contents(STDIN),~òõ),$l==~œž‹?~ߘšŒßݲšˆÝ:'';

(saved as ISO-8859-1)

Uses inverted undefined constants as string literals:

  • ~òõ == "\r\n"
  • ~œž‹ == 'cat'
  • ~ߘšŒßݲšˆÝ == ' goes "Meow"'

Everything is combined in a single echo statement, shorthanded with <?=

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.