A entrada não deve ser necessária e a saída deve ler " All your base are belong to us
".
Restrições
Nenhum recurso externo.
Mais um mínimo de dois dos seguintes itens:
Você não pode usar "a", "b", "t", "u" ou "y" em nenhum caso no seu código (bônus -10 à sua pontuação de golfe, se você puder fazer isso)
Você não pode usar "l", "o", "s", "e" ou "r" em nenhum caso no seu código (bônus -20 à sua pontuação de golfe, se você puder fazer isso)
Você não pode usar "n", "g", "0", "1" ou "2" em nenhum caso no seu código (bônus -30 na sua pontuação de golfe, se você puder fazer isso)
Por exemplo, se você conseguir executar o código com 40 caracteres e usar as regras 1 e 2, sua pontuação no golfe será de 40 - 10 - 20 = 10 caracteres.
A menor pontuação de golfe com código vence ... Boa sorte!
string
quebra todas as três restrições echar
,var
eWrite
quebra duas delas cada. Vai ser difícil obter respostas válidas, talvez Barinfuck.print(input())
(python)? O usuário seria obrigado a inserir a string correta, mas isso não é proibido.stdin
é sem dúvida uma "fonte externa".Respostas:
SOGL V0.12 , 15 - 60 = -45
Experimente aqui!
šz█P'zUS½█│β3‘
é uma string comprimida deall your base are belong to us
, mas porque essa seqüência exata comprimido contido0
, está dividido em 3 partes:all your base are
,belong to us
(que custou um byte, mas deu um bônus -30 byte). A primeira e a última string são compactadas com o dicionário de inglês SOGLs e unidas implicitamente com espaços. O restante⁾
é um caso de sentença simples embutido.Observe que SOGL pós-data deste desafio, mas isso é permitido agora.
fonte
GolfScript, -22 (38 caracteres, -60 de bônus)
fonte
"..."
define uma string e o bloco{}%
executa uma operação de mapeamento sobre todos os caracteres. Dentro do bloco, o valor ascii está disponível na pilha e67-
subtrai 67 de cada valor ascii.Sclipting , −40
丟
na frente, alterando a pontuação para -39.fonte
"input is not required"
como eu disse, jogaria o 丟 na frente e alteraria o placar para -39, mas é um grande esforço! Especialmente considerando que você inventou a linguagem, cara!JavaScript - 140 bytes - 60 bônus = 80 pontos
Execute no Firefox.
Eu sei o que você está pensando. Não, esses não são os personagens listados na pergunta. Esses são caracteres com um caractere, ou háček (escolhidos aleatoriamente em uma lista de sinais diacríticos). Mesmo combinando marcas, eles não são dois caracteres separados.
fonte
String.fromCharCode(65,108,108,32,121,111,117,114,32,98,97,115,101,32,97,114,101,32,98,101,108,111,110,103,32,116,111,32,117,115);
APL (43 - 30 - 20 = -7)
Isso satisfaz as regras 2 e 3.
fonte
INVALID TOKEN
erro ... talvez do caractere inicial e final antes do AV ... Existe algum outro lugar para testar isso ...?Brainfuck, 267 - 60 = 207
fonte
HTML / CSS 70
http://jsbin.com/EjekuvuF/1/
Eu pensei que estava sendo inteligente com o tipo de cabeça para baixo, mas depois percebi que não poderia cumprir nenhuma das regras auxiliares com o HTML / CSS real. Ah bem.
ATUALIZAR:
A User Flame sugeriu uma solução mais compatível com vários navegadores:
http://jsbin.com/EjekuvuF/6
fonte
transform:rotate(.5turn)
resolve um erro de sintaxe ... Eu gosto da imaginação dedicou a este ...MATLAB, todos os bônus: Pontuação de -20 (40-60)
EDITAR:
Observe que não tenho certeza de quais são os requisitos do sistema para executar isso, testados no Windows. Para aqueles que desejam copiar, um código semelhante pode ser gerado da seguinte maneira:
Se fosse permitido pedir algo como entrada, uma solução com menos caracteres (mas também sem o bônus) seria possível.
fonte
input
. A segunda resposta é (afaik) simplesmente não verdadeira.input('')
chamada não termina em ponto e vírgula; portanto, gera saída.prompt()
"dd
, mas talvez isso conte como um recurso externo. O mesmo ocorreria com o usuário, é claro.,
,E
9/
52
E"
!3
%E
!2
%E
"%
,/
.'
E4
/E
5`3 Eu posso entender a primeira resposta, mas a segunda resposta requer entrada, que eu disse que não era" necessária "k (-7 = 53 - 60)
(#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";
não inclui a nova linha à direita, pode ser adicionada ao custo de um caractere adicional:
(-#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";
irritantemente, as únicas compensações que funcionam para esse truque são 154 e 155
editar:
se for suficiente exibir a string (em vez de imprimi-la), como suspeito que a solução APL funcione (ela não funciona em http://tryapl.com/ , por isso não posso testá-la corretamente), é
que é -12 = 48 - 60. posso obter uma decisão sobre se isso é suficiente?
fonte
dc,
97 - 60 = 3791 - 60 = 3188 - 60 = 2881 - 60 = 21Versão aprimorada (a idéia principal aqui é variar a base de entrada, aumentar as chances de encontrar um número grande e útil, sem dígitos problemáticos):
Na base 7, a coisa toda pode se tornar um número único! Bases inferiores são naturalmente menos compactas, mas a falta de operações de reparo aqui compensa isso.
Minha base primeira solução utilizada 10. Meu segundo utilizada uma mistura de base 9, 10, 12, 13 e 15. Este é em base de 7. Eu realmente sinto que toda a base são me pertencem.
Último, sério: a Base 13 faz um ótimo trabalho no primeiro segmento, depois a base 7 para o resto.
fonte
Python REPL,
12211698 caracteres - 30 bônus =928668 pontosEu poderia me livrar dos zeros no Python 3.3 substituindo '
\40
' por\N{SP}
, mas, infelizmente, issoN
não é permitido.Edit : Inspirado por esta resposta , eu a reduzi ainda mais substituindo
\x40
por. Além disso, uma vez que já utilizam a
1
, substituindo\156
porn
e\x67
porg
encurta-lo por mais de 6 caracteres, enquanto incorrer nenhuma penalidade extra.fonte
.py
arquivo e executá-lo, não haverá saída.Brainfuck,
205203 - 60 =145143 bytesVersão legível:
fonte
Befunge 98: 122 - 60 = 62
Calcula os valores ascii e os imprime. Eu ainda preciso experimentar outros métodos para formar os números para ver se existem maneiras mais curtas.
fonte
Python, 195-40 = 155
fonte
Ruby, 121 - 50 = 71
Um pouco de força bruta, mas a maioria dos métodos engraçados é descartada:
Quebra a regra 1 por causa da entrada A
pack
, as outras duas devem estar OK.fonte
<<
minha resposta.{ba, z} sh,
67 - 40 72 - 6061 - 40 = 21Porra, acontece que eu tinha um
r
lá que eu não tinha notado, então o bônus de 20 não se aplica!fonte
$'\x74\x72'
pode ser usado diretamente como um nome de comando, economizando 8 caracteres para o$(m4<<<)
. Isso não funciona assim para você?\x72
como um substituto parar
você recebe o bônus de 20 pontos no custo de perder o bônus de 30 pontos (para o2
)2
usado lá, deixe-me ver se consigo encontrar uma maneira de me livrar dele e evitar perder nenhum bônus.tr
conta como um recurso externo?C, 75 bytes - 60 = 15
Obrigado a @gastropner por diminuir a pontuação de 50 para 33 e de 19 para 15!
Pega o endereço de uma matriz de caracteres como entrada e grava a sequência na matriz.
Experimente online!
Ligue para:
Resultado:
Versão antiga (90 bytes - 40 = 50):
fonte
*q,i,j;x(p){if(j="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9"[i++])*(q=p)=j^74,x(++p);}f(p){i=3-3;x(p);}
i=i<30
outros 2 bytes desligados.0
.Javascript
(306 caracteres - 60 bônus = 246)(206 caracteres - 50 bônus = 156)(123 caracteres = 173 caracteres - bônus 50)
Tipo de nooby, provavelmente poderia tirar mais proveito ... Informe-me se eu tiver enchido alguma coisa, isso alerta "Toda a sua base nos pertence". Isso também é apenas ASCII.
Se você contar o próprio console como saída, isso também contará (57 com bônus):
fonte
x=(c.t+c)[6]
é um pouco mais curtoeval
pode ser mais fácil de cortarBrainfuck, (227 - 60 = 167)
fonte
+++++ +++++
é necessário? Pode ter 226 bytes.PHP (35 - 60 = -25 bytes)
HOW LOW CAN YOU GET ?
[1] [2][1] Este programa pode ser decodificado usando
xxd -r
.[2] Sim, solução pesada reutilize aqui. Eu acho que é ... terceiro problema que resolvi dessa maneira. Talvez eu deva mudar para outra coisa, mas isso não é ótimo para problemas que o proíbem de usar a maioria dos personagens.
fonte
~
.Bash, 52 - 10-30 = 12
O seguinte deve ser executado em um ambiente (ainda bastante comum) ISO-8859-1:
Isso chama
tr
, que traduz os caracteres de maneira adequada. Eu tive que usar ar
regra 2 e violar a regra 2, ou usar um dígito na regra 3 de fuga e violação. Como 3 dá mais bônus, eu escolhi a primeira.fonte
tr
constituem um recurso externo?Pure Bash (sem recursos externos), 141 caracteres - 50 bônus = 91
Eliminar intencionalmente o bônus de 10 pontos para obter uma melhor pontuação geral.
Isso funciona em qualquer
bash
versão 3.00.15 ou posterior que eu tentei.Como funciona
Não há ciência de foguetes aqui - apenas
bash
expansões de uma forma ou de outra:[012]
. por exemplo,$'\x65'
nos dáe
Z=({k..v})
). O início da expansão do colchete é escolhido com cuidado para que os índices dos caracteres necessários não contenham[012]
. por exemplo,${Z[7]}
nos dár
.bash
é flexível o suficiente para permitir que seus comandos sejam construídos a partir do conteúdo de várias seqüências. Então se$f$'\x63'h$i
expande paraecho
.Resposta anterior com bônus total, mas pior pontuação geral:
Pure Bash (sem recursos externos), 193 caracteres - 60 bônus = 133
Eu sei que isso não vai ganhar, mas eu queria provar para mim mesmo que isso é possível
bash
, enquanto satisfaz todos os requisitos:Isso requer uma versão bastante recente
bash
para a${c^}
expansão de parâmetros. 4.2.25 é bom, mas 3.2.48 é um não-go.fonte
Postscript, 364 - 40 = 324
Eu não poderia fazer isso sem
loser
, é claro. :)Isso começa com a codificação do texto como base 36:
E depois remover os 1s e 0s e 2s aritmeticamente. As seqüências podem ser regeneradas com
36 <string-buf> cvrs
, mas isso gera letras maiúsculas, portanto, precisamos iterar e adicionar 0x20 para torná-las em minúsculas.Os operadores
cvx exec
nos permitem executar fragmentos de string de tokens de operador codificados em binário em várias codificações. O mais simples é codificar um operador em hexadecimal,<92??>
mas há um 2 lá! Portanto, a codificação de "primeiro nível" é ascii85. Em seguida, todas as strings que ainda continham caracteres proibidos passaram por níveis extras de hex -> ascii85 -> hex -> ascii85.fonte
Brainfuck, 306 - 60 = 246
fonte
PHP, 186 - 10 - 30 = 146
Eu tive que ser um pouco criativo;)
fonte
<?=
vez de eco (4), pode salvar as letras repetidas nas variáveis ('l', ''). use em54*2
vez de54+54
54*2
porque ele tem um2
, então eu só poderia fazê-lo com aqueles que tivessem 3 ou mais. Se eu usar um decimal, não haverá menos caracteres.chr(68+33)
echr(38*3)
por literale
er
.Python, 181 - 40 = 141
[Estou usando a versão 2.7.2 YMMV - o embutido,
file
foi lançada no python 3.X]fonte
Python (104 - 30 = 74)
E pontuação:
fonte
Caxumba, 150 -
60 = 90.40 = 110Não tenho certeza se isso poderia ter sido feito mais curto (em geral) se não recebesse um dos bônus de código - meu objetivo era um pouco menos em falta e um pouco mais em -60 ... Gostei do desafio de não usar qualquer um dos caracteres restritos.
E ... eu errei - perdi o comando inicial 'S'. : - /
Enfim, aqui está uma versão "sem regras" - expandindo as variáveis.
E isso dá uma pontuação de 177-60 = 117. Então, quebrar a regra do centro ainda me dava uma pontuação geral mais baixa.
fonte
Perl 5, 99 - 50 = 49
Uma sub-rotina que retorna a sequência necessária:
Veja impresso assim:
fonte
BF-RLE , 146 - 30 = 116
fonte