Tarefa: Faça com que seu programa escolha aleatoriamente uma das duas cotações a seguir em tempo de execução e imprima essa cotação, exatamente como mostrado.
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.
Restrições: As palavras spreading
, chestnut
, PEACE
, FREEDOM
, e STRENGTH
deve aparecer em seu código. Nenhuma palavra das duas aspas acima pode aparecer em seu código mais de uma vez .
A solução mais curta vence.
Respostas:
PHP 179
Inspirado pela resposta de es1024 .
fonte
Perl (
191184 caracteres)Obrigado @ core1024 por dicas sobre isso.
fonte
"you"
e uso$$&1
como um gerador aleatório :)Java, 338
Não consigo obtê-lo abaixo de 338 ...
Pouco não destruído:
fonte
java.io.PrintStream p=System.out
, adicionou 15 bytes ao totalstatic<T>void p(T o){System.out.print(o);}
, adicionou 12). Alguma outra sugestão?Javascript 229
254 256Edite 1 usando
new Date
como sugerido por @Doorknob - ainda não está claro para mim como as datas javascript se transformam em seqüências de caracteres ou números inteiros ou o que forEdite 2 simplificado. Muito.
fonte
new Date
é mais curto queDate.now()
Date
conversão: > A data do JavaScript é baseada em um valor de tempo que é milissegundos desde meia-noite de 01 de janeiro de 1970, UTC. Um dia possui 86.400.000 milissegundos. O intervalo de objetos Data do JavaScript é de -100.000.000 dias a 100.000.000 dias em relação a 01 de janeiro de 1970, UTC. , quando você&
é convertido automaticamente para aNumber
. Então, você está basicamente fazendo a escolha aleatória com base em milissegundos pares ou ímpares desde a1970-01-01T00:00:00.000Z
época.C #
(268) (260)(256)Isso é executável no LINQPad, usando o
Dump()
método:Ungolfed:
Atualizar:
Usando o operador ternário e uma variável extra, consegui cortar outros 6 caracteres:
Ungolfed:
Update2:
Graças à sugestão engenhosa,
tsavinho
pude economizar mais 4 caracteres colocando chaves ao redor da operação ternária:Ungolfed:
fonte
Python 3-228
Ligeiramente não destruído:
fonte
PowerShell 205
Usa o
-f
operador para inserir strings na primeira cotação e a segunda é unida porIS
, depois disso, ele seleciona um elemento aleatório dessas 2 cotações e o imprime ...fonte
JavaScript / jQuery 396
fonte
T-SQL,
337327Por diversão, criei outra solução no T-SQL, que é um byte menor que a minha solução Java 8:
Ao declarar o
char
s por muito tempo, você pode adicionar um espaço 'automático', economizando alguns bytes.Usando o código na edição proposta pelo usuário PenutReaper, você pode economizar 10 bytes.
fonte
Script Java (233)
Escreveu isso sem olhar para outras respostas. Faz bom uso de atribuições como expressões.
fonte
05AB1E , 119 bytes
Experimente online!
fonte
Python 3 , 222 bytes
Experimente online!
fonte
C (GCC) ,
307289271270 bytes-37 bytes graças ao ceilingcat
Experimente online!
fonte