Sua tarefa é produzir a string exata
The Jabberwocky
sem receber entrada. As regras normais de entrada e saída se aplicam, portanto, funções e programas são permitidos.
Claro que há um problema, não seria divertido sem um problema. Seu programa, quando separado de caracteres não alfabéticos, deve iniciar o poema The Jabberwocky (sem distinção entre maiúsculas e minúsculas). Para iniciar o poema, ele deve ser uma subcadeia contínua do poema, começando no início. A string vazia está correta (embora você provavelmente não tenha uma pontuação muito boa).
Aqui está o texto para referência:
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe
Aqui está um programa que você pode usar para testar esta propriedade.
Se você ficar sem poema para usar, não poderá usar caracteres alfabéticos adicionais.
Caracteres alfabéticos são caracteres a
- z
e A
- Z
aqui está a lista completa:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Pontuação
Seu programa será pontuado no número de bytes não alfabéticos usados, com menos sendo melhores.
Aqui está um programa Haskell que obtém respostas. (Isso pressupõe que as entradas são válidas)
Programa de exemplo
O seguinte programa seria válido:
twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe""""""""
ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit
Quando reduzido a caracteres alfabéticos, é:
twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit
Que corresponde ao primeiro bit do poema (não faz distinção entre maiúsculas e minúsculas).
Este programa terá 59 pontos porque contém esses caracteres não alfabéticos:
&*77812 """"""""
)(*)()((*98980908(()*(
fonte
Jabberwocky
(sem artigo), enquanto o nome da besta éthe Jabberwock
(sem -y ). Claro que você não pode mudar a saída necessária agora, mas ...Respostas:
oOo CODE , pontuação 0
Agradecimentos a Dennis por jogar o código Brainfuck.
Experimente online!
Tenho más notícias para este desafio ... :(
oOo CODE é apenas uma codificação binária de brainfuck que usa o caso de uma letra para cada bit. Então, sim, como o poema é longo o suficiente (ou a saída é curta o suficiente) para cobrir um programa Brainfuck que imprime
The Jabberwocky
(sem realmente se esforçar muito para jogar), isso se torna uma resposta ótima e trivial.fonte
C, pontuação
1047974Obrigado a @gastropner por diminuir a pontuação para 79 e a @ wizzwizz4 por diminuir ainda mais a 74!
Experimente online!
fonte
//abcdefgh\n
haveria 1 caractere a menos que/*abcdefgh*/
?Fissão 2 , pontuação 3
Experimente online!
Explicação
Podemos ignorar a maioria das letras minúsculas, elas apenas colocam a energia de um átomo no seu ponto de código.
A maiúscula
R
é o ponto de entrada do programa, pois cria um átomo indo para a direita. Como eu disse, podemos ignorar oe
. Então"
alterna o modo de sequência, que apenas imprime todos os caracteres encontrados para STDOUT, o que nos forneceThe Jabberwock
. Isso só deixa oy
. Poderíamos usar oy
que está surgindo imediatamentey
, mas teríamos que desperdiçar pelo menos um byte que não seja da letra ao imprimi-lo (!
) e possivelmente outro ao finalizar o programa.Em vez disso, esperamos pacientemente
y
que apareça imediatamente anteso
no poema. Porque isso nos permite usar oO
que imprime o personagem e destrói o átomo, encerrando o programa. Dessa forma, os únicos caracteres que não são da letra que precisamos são o espaço e as duas aspas.fonte
Alice , 7 pontos
Experimente online!
O
/
faz o movimento IP na diagonal e saltar fora das bordas, por isso as instruções realmente executados são"The "ono@
. On
comando (no modo ordinal) pressiona a cadeia de caracteres "Jabberwocky" se a parte superior da pilha estiver vazia eo
gera a parte superior da pilha.fonte
Geléia , pontuação
64Um programa completo imprimindo o resultado
(como um link monádico, ele imprime
The Jabberwock
como efeito colateral e retorna o caracterey
)Insere os caracteres
“ ””
em um prefixo do poema alterado por maiúsculas e minúsculas.Isso funciona porque:
O último
h
antesSOUTGRABEBEWARE“The Jabberwock”m”y
é (pelo menos no momento da escrita!) Um átomo indefinido, que faz com que tudo se torne um novo link que recebe a entrada padrão0
e executa algumas funções monádicasSOUTGRABEBEWARE
, que produzem1
(veja abaixo).1“The Jabberwock”m
então executam
, modulo slicing,"The Jabberwock"
com um tamanho de fatia de1
, produzindo"The Jabberwock"
.O trailing
”y
é uma nova cadeia constante líder, então Jelly imprime essa lista de caracteres e depois produz o caracterey
, e como agora é o final do programa, isso é impresso.Anterior 6 byter:
Experimente online!
Os seis caracteres não-poema são uma nova linha mais
“ ”1“
.Alternativa 6s:
fonte
m1“y
? Ele ainda imprimeThe Jabberwock
e começa com um subconjunto do poemam1“y
(ou poderia serm1”y
) é necessário porque devemos imprimirThe Jabberwocky
, nãoThe Jabberwock
.Carvão , pontuação 3
Experimente online!
Inseridos os três caracteres:
⎚ ⌈
... também funciona com todo o poema .
Quão?
fonte
Rubi (
-p
), Pontuação 12Experimente online!
Abuse todos os comentários!
Com a
-p
bandeira, o ruby imprimirá o que estiver armazenado$_
. Requer uma única linha de qualquer entrada.fonte
-p
aqui, por causa da linha de entrada necessária. "Sua tarefa é produzir a string exataThe Jabberwocky
sem receber entrada."-p
é um sinalizador de linha de comando, não uma entrada.Carvão , pontuação:
54Experimente online! Editar: salvou 1 byte graças a @ ASCII-only. Explicação: Traduz para o seguinte código detalhado:
fonte
Foo , marca 5
Experimente online!
fonte
> <> , Pontuação:
1312Experimente online!
Verificação e pontuação .
Redireciona imediatamente para a segunda linha, que pressiona "The Jabberwockmy" no sentido inverso à pilha.
$~
aparece o excessom
e>ro<
imprime toda a pilha, revertendo-a previamente.fonte
Retina 0.8.2 , pontuação:
212018161386Experimente online! Editar: pontuação reduzida em 2 graças a @MartinEnder.
fonte
*
vez de$*
).C, pontuação 23
Experimente online!
fonte
Yabasic , 13
Obrigado pela resposta Ruby do @ Pavel!
Experimente online!
fonte
VBA, pontuação 5
Execute na janela imediata:
Como funciona:
-
-
-
-
-
1 ponto de interrogação, 1 espaço e 3 aspas duplas. O VBA vê isso como
?"" & "The Jabberwock" & "" & "y"
ou?"The Jabberwocky"
fonte
Haskell , pontuação 12
Experimente online!
Define uma função de argumento zero
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware :: String
cuja saída é"The Jabberwocky"
.fonte
Java (OpenJDK 9) , pontuação 11
Experimente online!
Créditos
fonte
()
parat
(Void
parâmetro nulo não utilizado ) e removendo a liderançat
do comentário.<s>16</s> 14
eu prefiro, como sempre em qualquer rede StackExchange, para fornecer uma resposta final. As alterações são listadas na página de revisão , facilitando a visualização das mudanças reais e a evolução da resposta ao longo do tempo, em vez de colocar todas as informações passadas e atuais em uma grande publicação ilegível.PowerShell , pontuação:
1910Experimente online!
Resposta Ruby do Porto de Pavel . Graças a Jo King por -9 pontos.
As cordas são
+
concatenadas juntas. Depois que os comentários são removidos e o código analisado, o PowerShell vê isso como'The Jabberwock'+'y'
. Essa cadeia é deixada no pipeline e a saída é implícita.fonte
The
eJabberwock
em uma seqüência? Experimente online!Geléia , pontuação: 8
Experimente online!
Apenas comprime a string e é uma string vazia quando todos os caracteres que não são do alfabeto são removidos. Irritantemente, a forma compactada mais curta,
“81Iȯd»
possui caracteres alfabéticos, nenhum dos quais ét
ouw
fonte
Stax , 11
Execute e depure online!
Apenas um literal de string compactado que, por sua vez, é compactado.
fonte
05AB1E , pontuação 14
Experimente online!
fonte
Canvas , pontuação 5
Experimente aqui!
fonte
SOGL V0.12 , pontuação 9
Experimente aqui!
fonte
Pip , pontuação 5
Experimente online!
Felizmente, letras minúsculas no Pip são todas variáveis, que não são ops nas expressões por si mesmas. A parte interessante do código:
O scanner quebra
OOD
conformeO
seguido porOD
.OD
é uma variável indefinida, avaliada como nula (falsey); nós lógicos - ou isto com"The Jabberwock"
, eO
produz sem uma nova linha.Cadeia de caracteres únicos
y
. Como é a última expressão do programa, ela é impressa.fonte
SmileBASIC, pontuação 10
Isso foi tirado praticamente da resposta Yabasic, e
como o SB é um idioma melhor,podemos reduzi-lo usando rótulos em vez de comentários, o que elimina a necessidade de algumas quebras de linhaHá também esta solução alternativa, para o mesmo tamanho:
Um rótulo dentro de uma expressão é tratado como uma sequência. (
@my == "@my"
), então o caractere 2 fornece "y".fonte
C (gcc) , pontuação 58
O fato útil de que // comentários de estilo + novas linhas são mais baratos que comentários antigos vem diretamente do comentário de @ wizzwizz4 da resposta do @ Steadybox .
O sinalizador -m32 é obrigatório.
Alguns podem ser levados a um humor frumoso pelo longo nome da função a ser chamada, enquanto outros podem, com razão, achar que essas objeções são uma mímica; no final, todos nós devemos prestar atenção à música de sirene de baixa pontuação.
Experimente online!
fonte
Lote, pontuação
1511Basicamente, apenas
echo The Jabberwocky
com variáveis e rótulos não utilizados.Versão antiga (pontuação 24):
Requer que o código seja salvo em um arquivo nomeado
n.bat
e executado no mesmo diretório.Versão alternativa que pode ter qualquer nome (pontuação 27):
Explicação (com variáveis removidas):
fonte
Perl 5, sub-rotina, pontuação 11
mas com o caractere \ x86 (
v134
) em vez do X.(O perlsub diz "A assinatura faz parte do corpo de uma sub-rotina. Normalmente, o corpo de uma sub-rotina é simplesmente um bloco de código".)
fonte
y
?Ruby , 9 bytes sem letra
Experimente online!
Versão em golfe (para facilitar a leitura):
Usa algumas variáveis longas e inúteis. Em ruby, você pode colocar
whatever_you_want=
antes de uma expressão, e ela ainda retornará essa expressão, apenas com o efeito colateral de criar uma variável com nome estranho.fonte
Self-modifying Brainfuck, score 16
Try it online!
Explanation
Initially the tape is set up like this:
Since we want to move to the beginning of the string we use␀ character.
<[<<]
such that we jump over the firstNow we can just move to theT with y is not far, we can just jump to it directely and print it with
>
and print the whole string with[.>]
and since we picked the substring where the next>>.
.fonte
Fission, score 6
Try it online!
fonte