Desafío
Codifique una cookie ASCII de un tipo de acuerdo con la entrada.
Entrada
- El tipo de galleta. Esta es una de las tres cadenas: "Normal", "Chocolate" o "Nueces". Pueden ser argumentos de función, stdin (o equivalente más cercano) o argumentos de archivo.
Salida
- Una cookie ASCII. Vea abajo.
Debe ser
___
/ \
| |
\___/
para entrada simple,
___
/. .\
| . |
\___/
para el aporte de chocolate, y finalmente
___
/^ \
|^ ^|
\___/
para entrada de tuerca.
Otra información
- Este es mi primer desafío, es tan simple como puede ser. La retroalimentación constructiva es muy apreciada.
- Use cualquier medio para hacerlo.
- Los espacios finales están bien.
- Este es un desafío de código de golf, por lo que gana la entrada más corta al final de 9 días (miércoles 12 de agosto de 2015).
¡Gracias!
El ganador es Jakube usando Pyth con 41 bytes. Gracias a todos aquellos que participaron. Ahora me encargaré de presentar desafíos más complicados.
Respuestas:
Pyth,
4241 bytesPruébelo en línea: Regular Input / Test Suite
Explicación:
fuente
Rubí, 73
Esta es una función lambda anónima. Aquí está en un programa de prueba:
Simplemente usa la primera letra del tipo de cookie (en mayúsculas) y toma el módulo 3 para obtener un índice en el rango
0..2
. Luego, devuelve la cadena que representa la cookie, con las cadenas apropiadas incrustadas en los lugares correctos.fuente
ord
puede hacer el método si lo llamas para una cadena completa? Mi primera idea fue formatear:->s{" ___\n/%1$s \\\n|%1$s %1$s|\n\\___/"%'^. '[s.ord%3]}
tr
demuestra ser más corto:->s{' ___↵/% \↵|% %|↵\___/'.tr ?%,'^. '[s.ord%3]}
s[0] --> s
, nunca se me ocurrió intentarlo. Su código no parece dar la respuesta correcta para la caja de chocolate, ya que las chispas de chocolate están en diferentes lugares que las nueces. Sin embargo, hay algunas ideas útiles allí, las veré más adelante. No he usadotr
ni%
antes.tr
la sintaxis 's es sólo un personaje que no participan en el arte cookie que he utilizado como marcador de posición..)Python 2.7.6, 99 bytes
Este algoritmo se basa en el hecho de que
hash(cookie)%3
da 0 cuandocookie = "Plain"
, 1 cuandocookie = "Nut
y 2 cuandocookie = "Chocolate
. Si alguien conoce una forma de acortar este código, hágamelo saber en los comentarios.fuente
C: 122
Explicación después de que termine de jugar al golf.
Ejemplo de uso:
fuente
CJam,
4948 bytesPruébelo en línea en el intérprete de CJam .
Cómo funciona
Al final, CJam imprime automáticamente todos los elementos en la pila.
fuente
Javascript (ES6), 90
Esta es una función de flecha anónima. Utiliza la longitud de la entrada para determinar qué cookie dibujar.
Explicación:
Probar:
fuente
BrainFuck,
481447436 bytes¿Por qué no BrainFuck ?, el programa probablemente se puede jugar más, pero creo que es bastante bueno.
fuente
C # Con sangría y salto de línea
Golfizado (225 caracteres)
fuente
String C= Console.ReadLine(),E=
... etc.?C # 6, 105 bytes
Así que casi obtuve estos sub-100 bytes, aunque no tengo idea de dónde extraer los últimos bytes: C
fuente
Pyth,
5854535250 bytesNo creo que se pueda jugar más al golf. Realmente estaba tratando de reducir esto en menos de 50 bytes
fuente
". . . " -> *". "3
JavaScript (ES6), 72 bytes
Tan simple como parece ... las nuevas líneas se cuentan como 1 byte cada una.
Manifestación
Como es ES6, esta demostración solo funciona en Firefox y Safari por ahora.
fuente
Commodore 64 BASIC, 181 bytes
Notas:
En lugar de barras invertidas,
\
se han utilizado los caracteres SHIFT-M, para barras diagonales/
- SHIFT-N y para canalizaciones|
- SHIFT-T. SHIFT-Z (signo de diamante de tarjeta) se utilizó para^
. De hecho, los caracteres no importan ya que todos ocupan un byte cada uno.Debido a que en C64 cada comando (PRINT, INPUT, THEN, etc.) toma 2 bytes en la memoria (o incluso uno, IIRC), valió la pena probar el lenguaje BASIC (sin embargo, tomó más bytes de lo que esperaba).
El tamaño del programa se calculó midiendo la memoria libre antes de escribir el programa (38909 bytes) y después (38728 bytes), utilizando
PRINT FRE(0)+65536
comando, dando 181 bytes de diferencia.Código probado y capturas de pantalla preparadas con esta herramienta: http://codeazur.com.br/stuff/fc64_final/ (GPL).
Capturas de pantalla
fuente
Lua 5.3,
113 bytes112 bytesUtiliza mucho el operador ternario y la concatenación de cadenas, y eliminé todo el espacio en blanco que no es parte de la salida en sí.
fuente
Java
258217 caracteres / bytesGolfed
Original
fuente
LUA 270 caracteres 270 bytes
fuente
cookie
ac
, espacios en blanco eliminar durante la IFS, eliminar las innecesariasio.read()
s, la primera y última línea de una cookie es siempre la misma, ....LOLCODE 265 caracteres
Run
fuente