Tarea: Haga que su programa elija aleatoriamente una de las siguientes dos citas en tiempo de ejecución e imprima esa cita exactamente como se muestra.
1:
Under the spreading chestnut tree
I sold you and you sold me.
There lie they, and here lie we
Under the spreading chestnut tree.
2:
WAR IS PEACE.
FREEDOM IS SLAVERY.
IGNORANCE IS STRENGTH.
Restricciones: Las palabras spreading
, chestnut
, PEACE
, FREEDOM
, y STRENGTH
deben aparecer en el código. Ninguna palabra de las dos citas anteriores puede aparecer en su código más de una vez .
La solución más corta gana.
code-golf
string
kolmogorov-complexity
restricted-source
la taza de Joe
fuente
fuente
Respuestas:
PHP 179
Inspirado por la respuesta de es1024 .
fuente
Perl (
191184 caracteres)Gracias @ core1024 por los consejos para jugar al golf.
fuente
"you"
y usar$$&1
como generador aleatorio :)Java, 338
No puedo ponerlo por debajo de 338 ...
Poco sin golf:
fuente
java.io.PrintStream p=System.out
, se agregaron 15 bytes al totalstatic<T>void p(T o){System.out.print(o);}
, se agregaron 12). ¿Cualquier otra sugerencia?Javascript 229
254 256Edite 1 usando
new Date
lo sugerido por @Doorknob: todavía no me queda claro cómo las fechas de JavaScript se transforman en cadenas o enteros o lo que seaEdición 2 simplificada. Mucho.
fuente
new Date
es más corto queDate.now()
Date
conversión: > La fecha de JavaScript se basa en un valor de tiempo que es milisegundos desde la medianoche del 01 de enero de 1970 UTC. Un día tiene 86,400,000 milisegundos. El rango de objetos de fecha de JavaScript es de -100,000,000 días a 100,000,000 días en relación con el 01 de enero de 1970 UTC. , cuando&
se convierte automáticamente en aNumber
. Entonces, básicamente, está haciendo una elección aleatoria en función de si es un milisegundo par o impar desde la1970-01-01T00:00:00.000Z
época.C#
(268) (260)(256)Este es ejecutable en LINQPad, usando el
Dump()
método:Sin golf:
Actualizar:
Usando el operador ternario y 1 variable adicional, pude cortar otros 6 caracteres:
Sin golf:
Actualización2:
Gracias a la ingeniosa sugerencia de
tsavinho
que pude guardar 4 caracteres más colocando llaves alrededor de la operación ternaria:Sin golf:
fuente
Python 3 - 228
Ligeramente no golfista:
fuente
PowerShell 205
Utiliza el
-f
operador para poner cadenas en la primera cita, y se une a la segundaIS
, luego selecciona un elemento aleatorio de esas 2 citas y lo imprime ...fuente
JavaScript / jQuery 396
fuente
T-SQL,
337327Solo por diversión, hice otra solución en T-SQL, que es un byte más corto que mi solución Java 8:
Al declarar el
char
s demasiado largo, puede agregar un espacio 'automático', ahorrando unos pocos bytes.Usando el código en la edición propuesta por el usuario PenutReaper, puede recortar 10 bytes.
fuente
Script Java (233)
Escribió esto sin mirar otras respuestas. Hace buen uso de las asignaciones como expresiones.
fuente
05AB1E , 119 bytes
Pruébalo en línea!
fuente
Python 3 , 222 bytes
Pruébalo en línea!
fuente
C (gcc) ,
307289271270 bytes-37 bytes gracias a ceilingcat
Pruébalo en línea!
fuente