cat
geht "Meow"
Wir alle kennen das Konzept eines cat
Programms. Der Benutzer gibt etwas ein, es wird an den Benutzer zurückgemeldet. Einfach. Aber alle cat
Programme, die ich bisher gesehen habe, haben eine Tatsache übersehen: cat
"Meow". So Ihre Aufgabe ist es, ein Programm , das kopiert alle zu schreiben , STDIN
um STDOUT
SOFERN der Eingang cat
, in welchem Fall das Programm ausgeben soll cat goes "Meow"
.
Wertung
Das ist Code-Golf , also ist Ihre Punktzahl Ihre Byteanzahl, mit ein paar Modifikatoren:
- Wenn Ihr Programm für andere zusätzliche Tiere als
cat
(z. B.cow: cow goes "Moo"
) funktioniert , für jedes weitere Tier: -10 - Wenn Ihr Programm das Wort "cat" nicht verwendet: -15
- Wenn Ihr Programm
fox
mit "Was sagt der Fuchs" antwortet : -25
Tiere und Geräusche, die zusammenpassen:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Alles andere auf dieser Liste ist erlaubt.
Regeln
- Es gelten Standardlücken
- Du darfst nichts dazu schreiben
STDERR
- Sie können einfache Anführungszeichen / keine Anführungszeichen anstelle von doppelten Anführungszeichen verwenden.
Bestenliste
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Antworten:
Pyth, 231-255 = -24 Bytes
-24 * 10 zusätzliche Tiere, -15 für keine "Katzen" -Saite
Link zum Code
Pseudocode
Tiere, die es kennt:
quelle
squalk
selbstTeaScript , 29-15 = 14 Bytes
Verwendet keine Zeichenfolge
cat
."Was sagt der Fuchs" (Länge = 21) ist länger als der Bonus wert ist.
quelle
CJam, 12 Bytes
Das Programm ist 27 Byte lang und verwendet kein Wort
cat
( -15 Byte ).Probieren Sie es inline im CJam-Interpreter aus .
Wie es funktioniert
quelle
:)
APL (Dyalog) , 28-15 = 13 Bytes
Eingabe gefolgt von,
goes "Meow"
wenn die Eingabetac
umgekehrt ist.Probieren Sie es online!
{
…}
Anonyme Funktion⌽'tac'
Kehre die Saite um (um den Bonus von -15 zu erhalten, indem du die Zeichen vermeidestcat
)⍵≡
Boolescher Wert für die Identität des Arguments' goes "Meow"'/⍨
Verwenden Sie dies, um die Zeichenfolge zu filtern (dh gibt eine leere Zeichenfolge zurück, wenn sie falsch ist).⍵,
an das Argument anhängenquelle
Stapel , 51 Bytes
quelle
JavaScript,
45 - 15 =30/264 - 235 = 29Nachteil: Sie müssen den Namen des Tieres mit dem ersten Buchstaben in Großbuchstaben und den Rest in Kleinbuchstaben schreiben. Suchen Sie unten nach einer anderen Version, die dieses Problem behebt. Diese Version entgeht dem
a
in cat mit\x61
und enthält Code für die 22 zusätzlichen Tiere aus dieser Liste (alle erlaubten Tiere, die kurz genug waren, um es wert zu sein):(Vielen Dank an meinen Freund, der mir bei der mühsamen Erstellung dieser Liste geholfen hat.)
Ungolfed-Code:
Erste Version, 45 Bytes - 15 Bonus = 30
Ja, ich weiß. Ich ging von 30 auf 29 mit all dieser zusätzlichen Arbeit. Es hat Spaß gemacht!
Version, die vollständige Eingabe in Kleinbuchstaben ermöglicht, 294 Bytes - 235 Bonus = 59
Ich habe auch versucht, Gehäuse aus dem Daten-Array mit zu entfernen,
.join().toLowerCase().split(',')
aber es dauerte stattdessen 297 Zeichen.quelle
JavaScript,
81 - 20 - 15 = 46 Bytes50 - 15 = 35 Bytesquelle
'c\at'
statt'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
. Warum nicht einmal die Warnung fallen lassen? Das Ergebnis wird bereits an die Konsole zurückgegeben.GNU sed, 37-15 = 22 Bytes
quelle
MATLAB, 58-15 = 43 Bytes
Ziemlich einfach, mit Bonus für die Nichtverwendung
cat
im Code:Die Eingabe muss in einfachen Anführungszeichen angegeben werden:
' '
.quelle
Javascript, 117 Bytes
Ich habe hier definitiv nicht gewonnen, aber ich habe viele zusätzliche Tiere gedeckt.
Javascript, 31 Bytes
quelle
HALT , 71-15 = 56 Bytes
HALT ist eine Sprache, die ich (@Downgoat) für die Verarbeitung von Strings entwickelt habe. Das einzige Problem ist, dass sie etwas lang ist
Formatiert
quelle
Python 3,
81705546 - 15 = 31 BytesVielen Dank an Stewie Griffin für die Einsparung von 15 Bytes
Danke an grc für das Speichern von 8 Bytes.
Wenn Sie die Zeichenfolge nicht verwenden, erhalten Sie
cat
-15 Byte.quelle
JavaScript, 48 - 15 = 33 Bytes
Verwendet
\x61
als Ersatz für diea
incat
.quelle
Perl, 46-15 = 31
quelle
Ruby,
494650 - 15 = 35 BytesIch denke, es ist ziemlich einfach. Ich benutze keine Katze.
Edit: Danke für @ w0lf für das Speichern von 3 Bytes!
quelle
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15 - 20 = 529 Bytes
Ich benutze eine JSON-codierte gz-komprimierte Reihe von Tierstimmen. Das heißt, es funktioniert mit allen 65 erlaubten Tieren, aber mein Skript ist riesig. Funktioniert auch mit Fuchs und enthält nicht das Wort Katze.
quelle
MATLAB, 46 Bytes
Zugegebenermaßen trivial. Die Eingabe muss in einfachen Anführungszeichen erfolgen.
quelle
ans = ..
wird allgemein nicht akzeptiert, wenn die Herausforderung darin besteht, etwas zu drucken. Ich bin nicht sicher, ob es ein Konsens ist, aber es ist durchaus üblich,disp
etwas Ähnliches zu verwenden.Strahl ,
208,206 - 15 = 191 BytesKein Wettbewerbsbeitrag, aber ein bisschen Spaß zu machen. Es prüft die ersten Buchstaben der Eingabe gegen
cat
. Wenn eine Nichtübereinstimmung auftritt, wird eine Verknüpfung zum Standard-Cat-Programm hergestellt. Wenn es passt, wird es angehängtgoes "Meow"
quelle
Java = 222 Bytes (komprimiert)
Oder ich könnte es dekomprimieren.
Batch = 52 Bytes
quelle
Javascript: 48 Zeichen, 48 Bytes
Prüfung
=>
"Hund"<=
"Hund"=>
"Katze"<=
"Katze miaut"quelle
s=="cat"
. Auch die Schnur der Katze soll seincat goes "Meow"
,'function(s){return s=="cat"?'cat goes "Meow"':s}
ist also völlig gültig.s=>s=="cat"?s+' goes "Meow"':s
Haskell, 52-15 = 37 Bytes
Verwendung
\99
als Ersatz für c in "cat", um den 15-Byte-Bonus zu erhalten.quelle
O ,
221614 Bytes29 Bytes - 15
Es ist lang und kann mehr golfen werden
quelle
𝔼𝕊𝕄𝕚𝕟 , 23-15 = 8 Zeichen / 58-15 = 43 Bytes
Try it here (Firefox only).
Das Verhältnis von Byte zu Zeichen ist real.
quelle
Pyth, 82-95 = -13 Bytes
Endlich konnte ich meinen neuen funktionalen Python 2-Eintrag auf Pyth umstellen. Es schlägt den Spitzenkandidaten nicht. Es hat sich herausgestellt, dass das Zusammenzippen von mehr Tieren zu einem größeren Wörterbuch die Punktzahl schneller verringert, als wenn Tiere geschickt mit Geräuschen in Verbindung gebracht werden. Dies unterstützt 8 Tiere zusätzlich zur Katze: Nashorn, Okapi, Elch, Löwe, Tiger, Dachs, Nilpferd und Hirsch.
Probieren Sie es online aus
quelle
Japt,
25-15 = 1024-15 = 9 BytesJapt zum ersten Mal ausprobieren:
ƒ
sollte durch ein nicht druckbares ZeichenU+0083
ersetzt werdenAlte Lösung:
Probieren Sie es hier aus
quelle
U+0083
ersetztU+0192
oderƒ
wenn Sie dieses Snippet ausführen:"\u0083".charCodeAt()
Pyth, 26-15 (keine "Katze") = 11 Bytes
Mein erstes Pyth-Programm!
Probieren Sie es hier aus
Erklärung
quelle
C ++ 11, 316-11 * 10-15 = 191 Bytes
Kompiliert gut mit VisualStudio. GCC möchte, dass ich
#include <string>
und#include <cstdio>
. Es wäre kürzer, wenn ich keine Boni bekommen würde, aber ich hoffe immer noch, dass der Autor die Boni überarbeitet. Ich kann mir keine Sprachecow -> moo
vorstellen, in der die Definition viel kürzer als 10 Byte ist. Minenkosten-3+key+value
Bytes für zusätzliche Tier- und flache22+17
Bytes zum Definieren der Struktur und so weiter.Ungolfed
quelle
using
keine große Sache ist, ist die Initialisierungsliste.#include <map>
um#import<map>
für -2 Bytes. Das Leerzeichen davor<
kann weggelassen werden und#import
wirft einige Warnungen aus, wird aber als GCC und MSVC akzeptiertPyth, 31-15 = 16 Bytes
Sie können es hier ausprobieren
Erklärung:
quelle
C99
kann durch ersetzt werden\C
. Es ist immer noch+\C"at"
so, dass Sie den Bonus behalten können.C 76 Bytes
quelle
PHP, 70-15 = 55 Bytes
(gespeichert als ISO-8859-1)
Verwendet invertierte undefinierte Konstanten als String-Literale:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Alles ist in einer einzigen Echo-Anweisung zusammengefasst, die mit Kurzschrift versehen ist
<?=
quelle