cat
va "Miau"
Todos estamos familiarizados con el concepto de un cat
programa. El usuario escribe algo, se repite al usuario. Fácil. Pero todos los cat
programas que he visto hasta ahora han pasado por alto un hecho: un cat
va "Miau". Entonces, su tarea es escribir un programa que copie todo STDIN
a STDOUT
MENOS que la entrada sea cat
, en cuyo caso su programa debería salir cat goes "Meow"
.
Tanteo
Este es el código de golf , por lo que su puntuación es su recuento de bytes, con algunos modificadores:
- Si su programa funciona para cualquier animal adicional que no sea
cat
(por ejemplocow: cow goes "Moo"
), para cada animal adicional: -10 - Si su programa no usa la palabra "gato": -15
- Si su programa responde
fox
con "¿Qué dice el zorro": -25
Animales y sonidos que van de la mano:
cow goes moo
duck goes quack
sheep goes baa
bees go buzz
frogs go croak
Cualquier otra cosa en esta lista está permitida.
Reglas
- Se aplican lagunas estándar
- No debes escribir nada a
STDERR
- Puede usar comillas simples / sin comillas en lugar de comillas dobles.
Tabla de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
## Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:
## Perl, 43 + 2 (-p flag) = 45 bytes
También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento de la tabla de clasificación:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Respuestas:
Pyth, 231-255 = -24 bytes
-24 * 10 animales adicionales, -15 para la cadena sin "gato"
Enlace al código
Pseudocódigo
Animales que conoce:
fuente
squalk
mí mismoTeaScript , 29-15 = 14 bytes
No usa cadena
cat
."¿Qué dice el zorro" (longitud = 21) es más largo de lo que vale la bonificación.
fuente
CJam, 12 bytes
El programa tiene una longitud de 27 bytes y no usa la palabra
cat
( -15 bytes ).Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
:)
APL (Dyalog) , 28-15 = 13 bytes
Entrada seguida de
goes "Meow"
si la entrada es equivalente atac
invertida.Pruébalo en línea!
{
...}
función anónima⌽'tac'
invierta la cadena (para obtener la bonificación de -15 evitando los personajescat
)⍵≡
Booleano para saber si el argumento es idéntico a ese' goes "Meow"'/⍨
use eso para filtrar la cadena (es decir, devuelve una cadena vacía si es falsa)⍵,
anexar al argumentofuente
Pila , 51 bytes
fuente
JavaScript,
45 - 15 =30/264 - 235 = 29Desventaja: debe escribir el nombre del animal con la primera letra en mayúscula y el resto en minúscula. Mire abajo para otra versión que arregla esto. Esta versión escapa al
a
gato con\x61
e incluye código para los 22 animales adicionales de esta lista (todos los animales permitidos que tenían palabras lo suficientemente cortas como para valer la pena):(gracias a mi amigo por ayudarme con la tediosa tarea de hacer esta lista)
Código sin golf:
Primera versión, 45 bytes - 15 bonus = 30
Sí, lo sé. Pasé de 30 a 29 con TODO ese trabajo extra. ¡Fue divertido!
Versión que permite la entrada completa en minúsculas, 294 bytes - 235 bonus = 59
También intenté eliminar la carcasa de la matriz de datos con,
.join().toLowerCase().split(',')
pero en su lugar terminó tomando 297 caracteres.fuente
JavaScript,
81 - 20 - 15 = 46 bytes50 - 15 = 35 bytesfuente
'c\at'
lugar de'ca'+'t'
?alert({'c\at':'c\at goes "Meow"',fox:'What does the fox say'}[a=prompt()]||a)
. ¿Por qué ni siquiera soltar la alerta? Ya devuelve el resultado a la consola.GNU sed, 37-15 = 22 bytes
fuente
MATLAB, 58-15 = 43 bytes
Bastante sencillo, con bonificación por no usar
cat
en el código:La entrada debe darse entre comillas simples:
' '
.fuente
Javascript, 117 bytes
Definitivamente no he ganado aquí, pero he cubierto muchos animales adicionales.
Javascript, 31 bytes
fuente
HALT , 71 - 15 = 56 bytes
HALT es un lenguaje que (@Downgoat) hice diseñado para el procesamiento de cadenas, el único problema es que es un poco largo
Formateado
fuente
Python 3,
81705546 - 15 = 31 bytesGracias a Stewie Griffin por guardar 15 bytes.
Gracias a grc por guardar 8 bytes.
No usar la cadena
cat
da -15 bytes.fuente
JavaScript, 48-15 = 33 bytes
Usos
\x61
como un sustituto de laa
encat
.fuente
Perl, 46-15 = 31
fuente
Ruby,
494650 - 15 = 35 bytesBastante sencillo, supongo. No usa gato.
Editar: ¡Gracias por @ w0lf por guardar 3 bytes!
fuente
chop
: ideone.com/lTpShDPHP, 1204 - (10 * 64) - 15-20 = 529 bytes
Utilizo una matriz comprimida de sonidos de animales codificada por json gz. Esto significa que funciona con los 65 animales permitidos, pero mi guión es enorme. También funciona con zorro y no tiene la palabra gato.
fuente
MATLAB, 46 bytes
Es cierto que es trivial. La entrada debe darse entre comillas simples.
fuente
ans = ..
generalmente no se acepta, si el desafío es imprimir algo. No estoy seguro de si es un consenso, pero es bastante común usarlodisp
o algo similar.Haz ,
208206-15= 191 bytesNo es una entrada competitiva, pero es un poco divertido de hacer. Comprueba el primero para las letras de la entrada contra
cat
. Si se produce una falta de coincidencia, se abrirá un acceso directo al programa cat estándar. Si coincide, se agregarágoes "Meow"
fuente
Java = 222 bytes (comprimido)
O podría descomprimirlo.
Lote = 52 bytes
fuente
Javascript: 48 caracteres, 48 bytes
Prueba
=>
"Perro"<=
"Perro"=>
"gato"<=
"El gato hace miau"fuente
s=="cat"
. Además, se supone que la cadena del gato escat goes "Meow"
, por lo que'function(s){return s=="cat"?'cat goes "Meow"':s}
es completamente válida.s=>s=="cat"?s+' goes "Meow"':s
(30 bytes)Haskell, 52-15 = 37 bytes
Utilizando
\99
como un sustituto de c en "cat" para obtener el bono de 15 bytes.fuente
O ,
221614 bytes29 bytes - 15
Es largo y se puede jugar más al golf.
fuente
𝔼𝕊𝕄𝕚𝕟 , 23 - 15 = 8 caracteres / 58 - 15 = 43 bytes
Try it here (Firefox only).
La relación byte a char es real.
fuente
Pyth, 82-95 = -13 bytes
Finalmente pude convertir mi nueva entrada funcional de Python 2 a Pyth. No le gana al mejor contendiente. Resulta que juntar más animales en un diccionario más grande reduce la puntuación más rápido que asociar inteligentemente animales con sonidos. Esto admite 8 animales además del gato: rinoceronte, okapi, alce, león, tigre, tejón, hipopótamo y ciervo.
Pruébalo en línea
fuente
Japt,
25-15 = 1024-15 = 9 bytesPrimera vez que prueba Japt:
ƒ
debe reemplazarse con caracteres no imprimiblesU+0083
Compila a:Vieja solución:
Pruébalo aquí
fuente
U+0083
se reemplazaU+0192
oƒ
cuando ejecuta este fragmento:"\u0083".charCodeAt()
Pyth, 26-15 (sin "cat") = 11 bytes
¡Mi primer programa Pyth!
Pruébalo aquí
Explicación
fuente
C ++ 11, 316-11 * 10-15 = 191 bytes
Compila bien con VisualStudio. GCC quiere que lo haga
#include <string>
y#include <cstdio>
. Sería más corto si no fuera por bonos, pero todavía espero que el autor revise los bonos. No puedo pensar en un lenguaje en el que la definicióncow -> moo
sea más corta que 10bytes.3+key+value
Bytes de costo de mina para animales y planos adicionales22+17
bytes para definir la estructura y así.Sin golf
fuente
using
no es gran cosa, la lista de inicializadores sí.#include <map>
a#import<map>
por -2 bytes. El espacio anterior<
se puede omitir y#import
arroja algunas advertencias, pero se acepta sea CCG y MSVCPyth, 31-15 = 16 bytes
Puedes probarlo aquí
Explicacion:
fuente
C99
puede ser reemplazado con\C
. Todavía está+\C"at"
, así que puedes quedarte con la bonificación.C, 76 bytes
fuente
PHP, 70-15 = 55 bytes
(guardado como ISO-8859-1)
Utiliza constantes indefinidas invertidas como literales de cadena:
~òõ
=="\r\n"
~œž‹
=='cat'
~ߘšŒßݲšˆÝ
==' goes "Meow"'
Todo se combina en una sola declaración de eco, abreviada con
<?=
fuente