cat
va "Meow"
Nous connaissons tous le concept d'un cat
programme. L'utilisateur tape quelque chose, il est renvoyé à l'utilisateur. Facile. Mais tous les cat
programmes que j'ai vus jusqu'à présent ont manqué un fait: un cat
va "Meow". Donc, votre tâche consiste à écrire un programme qui copie tout STDIN
dans STDOUT
SAUF l'entrée est cat
, auquel cas votre programme devrait sortir cat goes "Meow"
.
Notation
Il s'agit de code-golf , donc votre score est votre nombre d'octets, avec quelques modificateurs:
- Si votre programme fonctionne pour des animaux supplémentaires autres que
cat
(par exemplecow: cow goes "Moo"
), pour chaque animal supplémentaire: -10 - Si votre programme n'utilise pas le mot "chat": -15
- Si votre programme répond
fox
par "Que dit le renard": -25
Des animaux et des sons qui vont de pair:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Tout autre élément de cette liste est autorisé.
Règles
- Des échappatoires standard s'appliquent
- Vous ne devez rien écrire à
STDERR
- Vous pouvez utiliser des guillemets simples / sans guillemets au lieu de guillemets doubles.
Classement
Voici un extrait de pile permettant de générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
## Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs numéros dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier séparément les pénalités d'indicateur d'interprétation), assurez-vous que le score réel est le dernier numéro de l'en-tête:
## Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de classement:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Réponses:
Pyth, 231-255 = -24 octets
-24 * 10 animaux supplémentaires, -15 pour pas de chaîne "chat"
Lien vers le code
Pseudocode
Les animaux qu'il connaît:
la source
squalk
moiTeaScript , 29 - 15 = 14 octets
N'utilise pas de chaîne
cat
."Que dit le renard" (longueur = 21) est plus long que le bonus ne vaut.
la source
CJam, 12 octets
Le programme est long de 27 octets et n'utilise pas le mot
cat
( -15 octets ).Essayez-le en ligne dans l' interpréteur CJam .
Comment ça marche
la source
:)
APL (Dyalog) , 28 - 15 = 13 octets
Entrée suivie de
goes "Meow"
si l'entrée est équivalente àtac
inversée.Essayez-le en ligne!
{
…}
Fonction anonyme⌽'tac'
inverser la chaîne (pour obtenir le bonus de -15 en évitant les caractèrescat
)⍵≡
Booléen pour savoir si l'argument est identique à celui' goes "Meow"'/⍨
utilisez-le pour filtrer la chaîne (c.-à-d. renvoie une chaîne vide si faux)⍵,
ajouter à l'argumentla source
Pile , 51 octets
la source
JavaScript,
45 - 15 =30/264 - 235 = 29Inconvénient: vous devez écrire le nom de l'animal avec la première lettre en majuscule et le reste en minuscule. Regardez ci-dessous pour une autre version qui résout ce problème. Cette version échappe
a
au chat avec\x61
et inclut le code pour les 22 animaux supplémentaires de cette liste (tous les animaux autorisés qui avaient suffisamment de mots pour en valoir la peine):(merci à mon ami de m'avoir aidé dans la tâche fastidieuse de faire cette liste)
Code non golfé:
Première version, 45 octets - 15 bonus = 30
Oui je sais. Je suis passé de 30 à 29 avec TOUT ce travail supplémentaire. C'était amusant!
Version qui permet une entrée complète en minuscules, 294 octets - 235 bonus = 59
J'ai également essayé de supprimer le boîtier du tableau de données avec
.join().toLowerCase().split(',')
mais il a fini par prendre 297 caractères à la place.la source
JavaScript,
81 - 20 - 15 = 46 octets50 - 15 = 35 octetsla source
'c\at'
lieu de'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
. Pourquoi ne pas même laisser tomber l'alerte? Il renvoie déjà le résultat à la console.GNU sed, 37-15 = 22 octets
la source
MATLAB, 58 - 15 = 43 octets
Assez simple, avec un bonus pour ne pas utiliser
cat
dans le code:L' entrée doit être donnée à l' intérieur des guillemets simples:
' '
.la source
Javascript, 117 octets
Je n'ai certainement pas gagné ici, mais j'ai couvert beaucoup d'animaux supplémentaires.
Javascript, 31 octets
la source
HALT , 71 - 15 = 56 octets
HALT est un langage que j'ai (@Downgoat) conçu pour le traitement des chaînes, le seul problème est qu'il est un peu long
Formaté
la source
Python 3,
81705546 - 15 = 31 octetsMerci à Stewie Griffin d'avoir économisé 15 octets
Merci à grc pour avoir économisé 8 octets.
Ne pas utiliser la chaîne
cat
donne -15 octets.la source
JavaScript, 48-15 = 33 octets
Utilisé
\x61
comme substitut dua
incat
.la source
Perl, 46 - 15 = 31
la source
Rubis,
494650 - 15 = 35 octetsAssez simple, je suppose. Ne pas utiliser de chat.
Edit: Merci pour @ w0lf pour avoir économisé 3 octets!
la source
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15-20 = 529 octets
J'utilise un tableau compressé gson encodé json de sons d'animaux. Cela signifie que cela fonctionne avec les 65 animaux autorisés, mais mon script est énorme. Fonctionne également avec le renard et ne contient pas le mot chat.
la source
MATLAB, 46 octets
Certes trivial. L'entrée doit être indiquée entre guillemets simples.
la source
ans = ..
n'est généralement pas accepté, si le défi est d'imprimer quelque chose. Je ne sais pas si c'est un consensus, mais c'est assez courant à utiliserdisp
ou quelque chose de similaire.Faisceau ,
208206 - 15 = 191 octetsPas une entrée compétitive, mais un peu de plaisir à faire. Il vérifie le premier pour les lettres de l'entrée
cat
. S'il obtient un décalage, il sera raccourci vers le programme chat standard. S'il correspond, il sera ajoutégoes "Meow"
la source
Java = 222 octets (compressé)
Ou je pourrais le décompresser.
Lot = 52 octets
la source
Javascript: 48 caractères, 48 octets
Tester
=>
"Chien"<=
"Chien"=>
"chat"<=
"le chat miaule"la source
s=="cat"
. De plus, la chaîne du chat est censée l'êtrecat goes "Meow"
, elle'function(s){return s=="cat"?'cat goes "Meow"':s}
est donc complètement valide.s=>s=="cat"?s+' goes "Meow"':s
(30 octets)Haskell, 52-15 = 37 octets
Utilisation
\99
comme substitut de c dans «chat» afin d'obtenir le bonus de 15 octets.la source
O ,
221614 octets29 octets - 15
C'est long et peut être joué plus
la source
𝔼𝕊𝕄𝕚𝕟 , 23 - 15 = 8 caractères / 58 - 15 = 43 octets
Try it here (Firefox only).
Le rapport octet / caractère est réel.
la source
Pyth, 82-95 = -13 octets
J'ai finalement réussi à convertir ma nouvelle entrée fonctionnelle Python 2 en Pyth. Il ne bat pas le meilleur concurrent. Il s'avère que le fait de rassembler davantage d'animaux dans un dictionnaire plus grand réduit le score plus rapidement que d'associer intelligemment des animaux à des sons. Cela prend en charge 8 animaux en plus du chat: rhinocéros, okapi, orignal, lion, tigre, blaireau, hippopotame et cerf.
Essayez-le en ligne
la source
Japt,
25-15 = 1024-15 = 9 octetsPremière tentative de Japt:
ƒ
doit être remplacé par un caractère non imprimable CompileU+0083
pour:Ancienne solution:
Essayez-le ici
la source
U+0083
obtenir remplacerU+0192
ouƒ
lorsque vous exécutez cet extrait:"\u0083".charCodeAt()
Pyth, 26-15 (pas de "chat") = 11 octets
Mon tout premier programme Pyth!
Essayez-le ici
Explication
la source
C ++ 11, 316 - 11 * 10 - 15 = 191 octets
Compile bien avec VisualStudio. GCC me veut
#include <string>
et#include <cstdio>
. Ce serait plus court si je n'allais pas pour les bonus, mais j'espère toujours que l'auteur révisera les bonus. Je ne peux pas penser à la langue où la définitioncow -> moo
est beaucoup plus courte que 10 octets. Octets de coût de la mine3+key+value
pour un animal et un appartement supplémentaires22+17
pour définir la structure, etc.Ungolfed
la source
using
ne soit pas grave, la liste d'initialisation l'est.#include <map>
à#import<map>
-2 octets. L'espace avant<
peut être omis et#import
émet quelques avertissements mais est accepté par GCC et MSVCPyth, 31 - 15 = 16 octets
Vous pouvez l'essayer ici
Explication:
la source
C99
peut être remplacé par\C
. C'est toujours+\C"at"
, donc vous pouvez garder le bonus.C, 76 octets
la source
PHP, 70-15 = 55 octets
(enregistré sous ISO-8859-1)
Utilise des constantes non définies inversées comme littéraux de chaîne:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Everything is combined in a single echo statement, shorthanded with
<?=
la source