Escreva um programa usando apenas caracteres ASCII imprimíveis que não aceitem entrada. Para referência, aqui estão os 95 caracteres imprimíveis ASCII em ordem:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Quando o programa é executado, ele deve imprimir 0
(mais uma nova linha à direita) para stdout e terminar normalmente.
Quando cada caractere no seu programa é substituído pelo caractere N espaços à direita no ASCII imprimível, circulando de um ~
espaço para o outro, a sequência ASCII imprimível resultante será idealmente um programa executável no mesmo idioma que não recebe entrada nem gera N (além de uma nova linha de rastreamento opcional) para stdout e termina normalmente, para N = 1 a 94.
Por exemplo, se o seu programa original foi
@Cat~(88 !)
executá-lo deve gerar 0
e mudar todos os caracteres na escala ASCII imprimível em um
ADbu )99!"*
deve resultar em outro programa que produz 1
. Fazer isso de novo resultará idealmente em outro programa que gera2
BEcv!*::"#+
e assim por diante com 3 e 4, etc. até o ponto de mudar 94 vezes
?B`s}'77~ (
que idealmente é um programa que gera 94
.
O alívio é que este é apenas o comportamento ideal. Seu programa e seus 94 derivados nem todos precisam funcionar, mas quanto mais consecutivamente o fizerem desde o início, melhor. (Os programas que não funcionam podem ter qualquer comportamento.)
Pontuação
Sua pontuação é o número de programas consecutivos , começando pelo original (aquele que gera 0
) que funciona, ou seja, gera corretamente o N. correspondente. A resposta com a pontuação mais alta (máximo de 95) vence. Se houver um empate, o programa com o menor comprimento em bytes vence.
Por exemplo, se @Cat~(88 !)
a saída 0
e ADbu )99!"*
de saída 1
, mas BEcv!*::"#+
com erros, então sua pontuação seria 2. É 2, mesmo ?B`s}'77~ (
com precisão saídas 94
e até mesmo se todos os programas para N = 30 a 40 trabalhou. Somente o número consecutivo de programas de trabalho, começando em zero, é contado.
Notas
- Para combater possíveis contendas e brechas, as respostas concorrentes devem apresentar seus números em decimal, sem zeros à esquerda, sinais ou pontos decimais (ou seja, simples
0
1
2
...94
). - Idiomas que usam diferentes bases ou formatos numéricos são permitidos, mas não são elegíveis para ganhar.
- A presença de uma nova linha opcional à direita não precisa ser consistente entre os programas.
- Funções e comandos REPL não são permitidos, apenas programas completos.
fonte
ans = 0
?0
impressa em stdout. Você pode fazer uma resposta não competitiva.Respostas:
Ook! , 95 programas,
1999214066 bytesA maneira mais fácil de fazer esse desafio é com um idioma tokenizado que não precise de novas linhas e ignore os tokens inválidos.
Testado usando este intérprete *. Assume células de 8 bits para golfiness extra. Os programas também se sobrepõem um pouco para salvar alguns bytes.
* Esse intérprete possui uma peculiaridade estranha, na qual o último token precisa de um caractere após o registro, o que afeta
n = 62
. Existem intérpretes offline de 8 bits sem essa peculiaridade, mas esse foi o melhor que eu pude encontrar.fonte
PHP, 95 programas,
24392063 bytesRequer a opção output_buffering como On ou alguns valores como 4096. O padrão é 4096 para o serviço da web (mas não para a CLI), pelo menos para a minha instalação.
O documento diz
ob_clean
que não retorna nada. Mas voltou verdadeiro mesmo assim.Os programas deslocados têm a seguinte aparência:
Gerado usando este programa CJam:
fonte
CJam , 10 programas, 1 byte
Eu pensei que seria melhor adicionar isso logo de cara antes que alguém fique atrevido e faça: P
Um programa CJam com apenas um número simples gera esse número; portanto, é uma maneira fácil de obter 10 programas que funcionam, a saber:
0
,1
,2
,3
,4
,5
,6
,7
,8
, E9
.O próximo programa
:
não surpreende,10
mas gera um erro "operador inacabado".Sem dúvida, isso funciona em vários idiomas.
fonte