En el menor número posible de caracteres Unicode, imprima lo siguiente (144 caracteres):
1, 2, 3 o'clock, 4 o'clock rock,
5, 6, 7 o'clock, 8 o'clock rock,
9, 10, 11 o'clock, 12 o'clock rock,
We're gonna rock around the clock tonight.
No debe usar ningún número en su código, excepto el dígito 1
.
11
. ¿La instrucción significa que solo puede usar el número 1 o el dígito 1?1
. No especifiqué cuántas veces, por lo que el hecho de que la gente lo haya usado11
es una escapatoria inteligente, y estoy de acuerdo.Respuestas:
Javascript -
140132El hecho de que 11 esté formado por dos 1 me permite pasar las reglas, supongo.
Explicación
K +++ s es igual a (k ++) + s, por lo que agrega k primero a x, luego incrementa k y luego agrega s a x. Este proceso se realizará tres veces antes de agregar la última oración.
fuente
k+++s
hacer? ¿Es(k++) + s
ok + (++s)
o(k++) + (++s)
?x+=k+++s+k+++s+k+++t+s+k+++t+u
alert
es más corto queconsole.log
. Usar la visualización automática del último cálculo en la consola es como hacer trampa.C # - 186
¿El mejor lenguaje de golf o el mejor lenguaje de golf?
fuente
i++ +
bitsWriteLine
->Write
, y usando un literal\n
al final de la cadena.Brainfuck (1574)
No es una presentación seria, pero sigue las reglas.
Se puede probar aquí .
fuente
#RESPECT
Rubí, 100
fuente
s="%i, %i#{", %i o'clock"*-~1} rock,\n"
(reemplazar el\n
con un salto de línea literal). Gran idea para usar$$
!r=-~1
línea, puede usar en"..."*-~r
lugar des+s+s
, lo que le permite colocar la asignación ens
.Perl 123
La expresión regular coincide
(
,)
y*
. Usé el hecho de que el código ASCII de(
es 40, de)
es 41 y*
es 42.El
r
indicador de la expresión regular habilita la "sustitución en el lugar" y ele
indicador habilita la evaluación del código (similar ax.replace(/.../, function(m){...})
en JavaScript).(clock,rock)
es una serie de dos "palabras desnudas".$&
es la coincidencia actual de la expresión regular yord$&
es su valor ASCII.Enmascarados por 3 o
1+1+1
los valores ASCII ahora son 0, 1 y 2, por lo que puedo usarlos para recuperar el elemento de matriz correspondiente. Como 2 está fuera de la matriz, el operador de "cortocircuito"||
evalúa++$i
. En el primer partido$i
esundef
por lo incrementándolo consigo 1, luego 2 y así sucesivamente ...En palabras simples Esto reemplaza
*
con su ocurrencia actual,(
con "reloj" y)
con "roca".fuente
Bash + coreutils, 120 ASCII, 92 Unicode
ASCII:
Unicode:
versión Unicode codificada en base64 (en caso de que las representaciones de Unicode se estropeen):
fuente
eval
en lugar de a pipeingbash
osh
?$r
s!Brainfuck, 1299
Bleuuuurgh . Eso fue terrible. No sé por qué hice esto, al principio parecía bastante fácil. Primero y probablemente el último guión de Brainfuck. Pruébalo aquí
Con un poco de ayuda de un generador de código automatizado , pude escribir un script que reutilizaba la mayoría de los caracteres en lugar de generar cada uno desde cero. Tiene solo 275 caracteres más cortos que el generado automáticamente, publicado aquí .
La salida no está terminada en nueva línea.
Podría poner un poco de explicación más adelante. Esencialmente, cualquier línea de tiempo que no es algo así como
>>>>>>>
o<<<<<<<
o>>.>>.>>.>>.
genera un carácter o una serie de ellos.fuente
Lua -
217164154 154151149143Modificado el anterior para usar un bucle en su lugar, guarda una carga de personajes. Gracias a TeunPronk por ayudarme a eliminar otros 10 caracteres y a WilliamBarbosa por eliminar otros 3 caracteres. Se pueden guardar 2 caracteres más usando la variable
k
. Se guardan 6 caracteres más al eliminar la variable,r=" rock,"
ya que se usa una vez.Sin golf,
fuente
j
yk
.O
, retireO
deR
, colocar en un espacioR
y reemplazarR
porO,R
en suio.write
:)io.write
en una variable (f=io.write
) y reducir esto aún másCJam - 90 ASCII / 54 Unicode
ASCII:
Unicode:
Pruébalos en http://cjam.aditsu.net/
fuente
Pitón (123)
PYG (112)
fuente
Brainfuck - 680
pruébalo aquí: ideone.com/Wi9ftB
Como prometí, aquí hay una versión mejor. mi cerebro se siente como ... ooh, así que de ahí viene el nombre.
explicación: (porque no se puede mantener y no quiero olvidar cómo funciona)
En primer lugar, debe elegir el mejor diseño de datos para este desafío. se me ocurrio
-4 outmost loop -3 newline char -2 space -1 numbers 1 lowercase #1 2 lowercase #2 3 comma, apostrophe, period 4 condition (outmost loop < 3) 5 inner loop 6 second inner loop
Tenemos que creer que esto es óptimo a menos que haya demasiados cambios (en cuyo caso tendrá que reorganizar el diseño)
Después de eso, utilicé un bucle 4x9x3 para establecer los valores iniciales de nueva línea, número, las dos letras minúsculas y la coma. (todos los códigos ascii más pequeños obtuvieron 4x9 = 36 y las dos letras minúsculas obtuvieron 4x9x3 = 108, luego agregué y restamos algunos para obtener su valor real)
Cuando se realiza el preajuste, el código ingresa al bucle más externo que realiza ciclos 3 veces. Lo explico por pseudocódigo.
Cuando termine esta sección, solo tengo que imprimir la última línea. Pero tenemos una W mayúscula que debe producirse sin usar demasiados caracteres. En este punto estamos aquí:
entonces puse [-3] 4 veces a [-1] y resta 3 para obtener 87 (W):
>[>>++++<<-]>>---.
luego lo borro
[-]
y muevo [-2] a esta ubicación [-1] para que el espacio esté cerca de las letras minúsculas.
<[>+<-]
Después de eso solo imprime las letras. la letra minúscula n. ° 1 corresponde a la parte inferior 97-107 y la letra minúscula n. ° 2 corresponde a la región anterior.
fuente
JavaScript,
111107 caracteres, sin usar ningún número.Ejecute estos fragmentos en la consola JS de su navegador:
107 (inspirado en http://xem.github.io/obfuscatweet/ más la otra respuesta de JS):
111 (solo empacando toda la cadena y eliminando la evaluación):
fuente
C - 145 - pruébame
C - 172 - pruébame
fuente
#include <stdio.h>
usarloprintf
?main(){...
PHP - 125
129Versión 1 (129)
Versión 2 (125)
Versión limpia:
fuente
Perl,
114111110108110:
111:
114:
fuente
C ++
261203Edité mi primer intento; funcionó cuando lo probé por primera vez, pero eso parece ser una casualidad; el incremento posterior en una secuencia es un "comportamiento indefinido", e hizo cosas extrañas (¡incluida la pantalla azul de Windows 7!) cuando intenté volver a ejecutarlo. Creo que usar printf en lugar de std :: cout podría usarse con post-incremento para obtener un programa más corto.
Editado nuevamente, lo redujo a 231 al volver a implementar el bucle. Editado una vez más, ahora a 203 ... esos #defines no fueron todos útiles en la versión en bucle.
Para aquellos que se preguntan cómo C ++ puede ejecutar una función "m", el punto de entrada se puede definir como cualquier función con solo una opción de compilador, al igual que configurar todos los funcs para que sean stdcall; Usé ambos interruptores al compilar lo anterior. Si no le gusta el punto de entrada redefinido, agregue 3 a mi recuento de caracteres.
fuente
m()
. Sin embargo, puede soltarvoid
y guardar 5 caracteres (o 2 si nombra el métodomain
)Swift -
136134fuente
Java, 228
Una solución codificada probablemente habría sido más corta.
fuente
1+1+1
es 9 caracteres más corto que"two".length()"
. ¿Y esString[] a
necesario?Befunge-98 (
402268)Ahora una incógnita!
fuente
,,:,1+
,a11+/a*b1111+++-+w:,
, personajes callejeros por debajo de la línea principal de código ... típica Befunge. La mayoría de los intérpretes en línea están teniendo problemas con la longitud de la línea (está muy por encima del límite), ¿conoces uno que no le importe?Groovy -
140139 caracteresGolfed, influenciado por la respuesta de William Barbosa :
Sin golf:
fuente
Mathematica - 153
fuente
C ++ 252
fuente
P(", ")
en lugar deQ
te ahorra 2 caracteres.N
yR
solo aparece una vez: sería mejor alinearlos que hacer una macro.#include<iostream> #define P std::cout<<++i<< #define C" o'clock" #define F P", ";P", ";P C<<", ";P C<<" rock"<<std::endl; int i;main(){F F F std::cout<<"We're gonna rock around the clock tonight.";}
Java (v2) -
250241232 caracteresEste es un programa completo en ejecución, influenciado por la respuesta de William Barbosa .
Golfizado:
Sin golf:
fuente
ECMAScript6 -
136135Ni siquiera usa el
1
dígito permitido :Probado en la consola de Firefox.
fuente
PowerShell,
123118109Después de un comienzo horrible (167) me libré de algunos modismos que ni siquiera necesitaba y al menos lo hice más corto que la referencia.
fuente
Haskell -
138137 caracteresComo un programa independiente:
Editar: Solía tener una función auxiliar o solía definir s por
pero resulta que cuesta 1 personaje extra. ¿Hay alguna forma de comprimir todos los "o'clock" s / "rock" s / "ock" s?
fuente
JavaScript, 140
Hago una cadena como "x, x, x en punto x en punto roca, \ n ..." Luego reemplazo las "x" con números.
fuente
PHP 150
No hay números, incluido el 11 que no serían dos 1 pegados, pero el valor numérico es once.
fuente
PowerShell,
156140136129127Sin golf:
fuente
$i++,$i++,"$(($i++)) o'clock","$(($i++)) o'clock rock,"-join', '
dentro del bucle.Cobra - 193
fuente