cat
vai "miau"
Todos conhecemos o conceito de um cat
programa. O usuário digita algo, é ecoado de volta para o usuário. Fácil. Mas todos os cat
programas que eu vi até agora perderam um fato: um cat
vai "Meow". Portanto, sua tarefa é escrever um programa que copie tudo, STDIN
a STDOUT
menos que a entrada seja cat
; nesse caso, seu programa deverá ser exibido cat goes "Meow"
.
Pontuação
Isso é código-golfe , então sua pontuação é sua contagem de bytes, com alguns modificadores:
- Se o seu programa funcionar para outros animais além de
cat
(por exemplocow: cow goes "Moo"
), para cada animal adicional: -10 - Se o seu programa não usar a palavra "gato": -15
- Se o seu programa responder
fox
com "O que a raposa diz": -25
Animais e sons que andam juntos:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Qualquer outra coisa nesta lista é permitida.
Regras
- Aplicam-se brechas padrão
- Você não deve escrever nada para
STDERR
- Você pode usar aspas simples / sem aspas, em vez de aspas duplas.
Entre os melhores
Aqui está um snippet de pilha para gerar uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
## Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
## Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet do placar de líderes:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Respostas:
Pitão, 231-255 = -24 bytes
-24 * 10 animais extras, -15 para nenhuma corda "gato"
Link para código
Pseudo-código
Animais que conhece:
fonte
squalk
eu mesmo #TeaScript , 29 - 15 = 14 bytes
Não usa string
cat
."O que a raposa diz" (comprimento = 21) é maior do que o bônus vale.
fonte
CJam, 12 bytes
O programa tem 27 bytes de comprimento e não usa a palavra
cat
( -15 bytes ).Experimente em linha no intérprete CJam .
Como funciona
fonte
:)
APL (Dyalog) , 28 - 15 = 13 bytes
Entrada seguida por
goes "Meow"
se a entrada for equivalente atac
invertida.Experimente online!
{
...}
função anônima⌽'tac'
inverta a string (para obter o bônus de -15, evitando os caracterescat
)⍵≡
Booleano para se o argumento é idêntico ao' goes "Meow"'/⍨
use isso para filtrar a string (ou seja, retorna string vazia, se false)⍵,
anexar ao argumentofonte
Pilha , 51 bytes
fonte
JavaScript,
45 - 15 =30/264 - 235 = 29Desvantagem: você deve escrever o nome do animal com a primeira letra em maiúscula e o restante em minúscula. Veja abaixo outra versão que corrige isso. Esta versão escapa do
a
in in com\x61
e inclui código para os 22 animais extras dessa lista (todos os animais permitidos que tinham palavras curtas o suficiente para valer a pena):(obrigado ao meu amigo por me ajudar com a tarefa tediosa de fazer essa lista)
Código não destruído:
Primeira versão, 45 bytes - 15 bônus = 30
Sim eu conheço. Eu fui de 30 para 29 com todo esse trabalho extra. Foi divertido!
Versão que permite entrada minúscula completa, 294 bytes - 235 bônus = 59
Também tentei remover a caixa do conjunto de dados,
.join().toLowerCase().split(',')
mas acabou tendo 297 caracteres.fonte
JavaScript,
81 - 20 - 15 = 46 bytes50 - 15 = 35 bytesfonte
'c\at'
vez de'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
. Por que nem soltar o alerta? Ele já retorna o resultado ao console.GNU sed, 37 - 15 = 22 bytes
fonte
MATLAB, 58 - 15 = 43 bytes
Bem direto, com bônus por não usar
cat
no código:Entrada deve ser dada dentro de aspas simples:
' '
.fonte
Javascript, 117 bytes
Definitivamente não ganhei aqui, mas cobri muitos animais extras.
Javascript, 31 bytes
fonte
HALT , 71 - 15 = 56 bytes
HALT é uma linguagem que eu (@Downgoat) elaborada para o processamento de strings, o único problema é que é um pouco longo
Formatado
fonte
Python 3,
81705546 - 15 = 31 bytesAgradecimentos a Stewie Griffin por salvar 15 bytes
Obrigado ao grc por salvar 8 bytes.
Não usar a string
cat
fornece -15 bytes.fonte
JavaScript, 48 - 15 = 33 bytes
Usa
\x61
como um substituto para oa
incat
.fonte
Perl, 46 - 15 = 31
fonte
Ruby,
494650 - 15 = 35 bytesBem direto, eu acho. Não está usando gato.
Edit: Obrigado por @ w0lf por salvar 3 bytes!
fonte
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15-20 = 529 bytes
Eu uso uma matriz compactada json codificada em gz de sons de animais. Isso significa que ele funciona com todos os 65 animais permitidos, mas meu script é enorme. Também funciona com raposa e não possui a palavra gato.
fonte
MATLAB, 46 bytes
É certo que é trivial. A entrada deve ser fornecida entre aspas simples.
fonte
ans = ..
geralmente não é aceito, se o desafio é imprimir alguma coisa. Não tenho certeza se é um consenso, mas é bastante comum usardisp
algo semelhante.Feixe ,
208206 - 15 = 191 bytesNão é uma entrada competitiva, mas um pouco de diversão para fazer. Ele verifica o primeiro quanto a letras da entrada
cat
. Se houver uma incompatibilidade, será atalho para o programa padrão do gato. Se corresponder, será anexadogoes "Meow"
fonte
Java = 222 bytes (compactado)
Ou eu poderia descompactá-lo.
Lote = 52 bytes
fonte
Javascript: 48 caracteres, 48 bytes
Teste
=>
"Cachorro"<=
"Cachorro"=>
"gato"<=
"gato mia"fonte
s=="cat"
. Além disso, a string do gato deve sercat goes "Meow"
, portanto,'function(s){return s=="cat"?'cat goes "Meow"':s}
é completamente válida.s=>s=="cat"?s+' goes "Meow"':s
(30 bytes)Haskell, 52-15 = 37 bytes
Utilizando
\99
como substituto de c em "cat" para obter o bônus de 15 bytes.fonte
O ,
221614 bytes29 bytes - 15
É longo e pode ser jogado mais
fonte
𝔼𝕊𝕄𝕚𝕟 , 23 - 15 = 8 caracteres / 58 - 15 = 43 bytes
Try it here (Firefox only).
A proporção de bytes para caracteres é real.
fonte
Pitão, 82-95 = -13 bytes
Eu finalmente consegui converter minha nova entrada funcional do Python 2 em Pyth. Não supera o principal concorrente. Acontece que juntar mais animais em um dicionário maior reduz a pontuação mais rapidamente do que associar animais com sons. Além disso, ele suporta 8 animais: rinoceronte, ocapi, alce, leão, tigre, texugo, hipopótamo e veado.
Experimente online
fonte
Japt,
25-15 = 1024-15 = 9 bytesPrimeira vez que experimenta o Japt:
ƒ
deve ser substituído pelo caractere não imprimívelU+0083
Compila para:Solução antiga:
Experimente aqui
fonte
U+0083
substituídoU+0192
ouƒ
quando você executa esse trecho:"\u0083".charCodeAt()
Pitão, 26 a 15 (sem "gato") = 11 bytes
Meu primeiro programa Pyth!
Experimente aqui
Explicação
fonte
C ++ 11, 316 - 11 * 10 - 15 = 191 bytes
Compila bem com o VisualStudio. O GCC quer que eu
#include <string>
e#include <cstdio>
. Seria mais curto se eu não aceitasse bônus, mas ainda espero que o autor revise os bônus. Não consigo pensar em uma linguagem em que definir algocow -> moo
assim seja bem menor que 10 bytes.3+key+value
Bytes de custo da mina para animais e planos adicionais22+17
para definir a estrutura e assim por diante.Ungolfed
fonte
using
não é grande coisa, a lista de inicializadores é.#include <map>
a#import<map>
para -2 bytes. O espaço antes<
pode ser omitido e#import
lança alguns avisos, mas é aceito seja GCC e MSVCPitão, 31 - 15 = 16 bytes
Você pode experimentar aqui
Explicação:
fonte
C99
pode ser substituído por\C
. Ainda é+\C"at"
, para que você possa manter o bônus.C, 76 bytes
fonte
PHP, 70-15 = 55 bytes
(salvo como ISO-8859-1)
Usa constantes indefinidas invertidas como literais de string:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Tudo é combinado em uma única declaração de eco, abreviada com
<?=
fonte