Muitos usuários do PPCG ajudaram na criação desse desafio, tanto no bate-papo quanto no Sandbox, especificamente Martin Ender , AdmBorkBork , Emigna e user202729
Nossa comunidade achou necessário criar um conjunto de idiomas projetados especificamente para o golfe, "idiomas do golfe", como os chamamos. Essas linguagens evoluíram do GolfScript , antes brilhante e desajeitado, para as linguagens concisas e elegantes, como Jelly e Husk . Como podemos ver, esses idiomas estão ficando cada vez menores para um conjunto de tarefas. Portanto, como especialistas óbvios por aqui em relação às línguas do golfe, devemos projetar uma linguagem juntos para vencer todas as outras línguas que ousarem competir. Apresentando o Bugle!
Bugle: Desde a sigla BuGoL: Bu ILT Ir lfing L anguage.
Como esse desafio funcionará
Caso você não tenha entendido o que estou aludindo na introdução, esse desafio é um desafio de encadeamento de respostas, em que cada um de nós contribui com algo para o intérprete de uma nova linguagem de golfe, melhorando sua capacidade de competir no PPCG a cada resposta.
Vou postar a primeira resposta que consiste na base da especificação / intérprete de idioma e todas as outras respostas continuarão a partir disso. Novos envios fornecerão o seguinte:
- Uma alteração nas especificações do idioma
- Um intérprete atualizado, atendendo exatamente ao que está disposto nas alterações
- Pontuação atualizada do idioma (mais detalhes em breve)
Você pode alterar as especificações de uma das três maneiras:
- Você pode adicionar um único comando
- Você pode adicionar dois novos comandos
- Você pode editar o comportamento de um comando existente
Em relação ao novo intérprete, você deve usar a versão mais recente, escrita em Python. Não precisa ser jogado golfe. Todo comando adicionado anteriormente deve ser testado com o intérprete mais recente, bem como com os comandos mais recentes (aquele que você adiciona). Você também não deve usar linguagem ofensiva a qualquer momento ao atualizar o intérprete, como comentários ou literais de strings, etc.
Os comandos adicionados podem fazer o que você desejar . Os únicos requisitos são:
- Não produz saída ofensiva
- Não é o mesmo que outro comando
- Isso não impede que um dos desafios da amostra seja concluído
Além disso, pode ser tão específico ou geral quanto você desejar. Também pode ser qualquer personagem que você quiser. Se você não tiver certeza se sua adição constitui um 'novo comando', não hesite em perguntar nos comentários.
Pontuação do idioma
Você deve ter notado que precisa incluir a pontuação do idioma em todos os novos envios. Sua pontuação é o que impede esse desafio para sempre e é definida da seguinte forma:
A pontuação atual é a soma da contagem de bytes necessária para o idioma concluir as 20 tarefas abaixo
Para cada uma das tarefas, as regras de E / S padrão se aplicam , assim como as brechas padrão .
As 20 tarefas:
- "Olá Mundo!" - Saída da string
Hello, World!
- 1, 2, Fizz, 4, Buzz - gera cada número inteiro de 1 a 100 (inclusive) em uma linha separada, com múltiplos de 3 sendo substituídos por
Fizz
, múltiplos de 5 sendo substituídos porBuzz
e múltiplos de ambos porFizzBuzz
- Produza o número 2014 sem nenhum número no seu código-fonte - envie o número 2014 sem usar nenhum dos caracteres
0123456789
no código-fonte, sem acessar variáveis externas ou sementes aleatórias - Obfuscated Olá Mundo - Saída a corda
Hello, World!
, sem o uso de qualquer um dos personagens em pelo menos dois dos seguintes conjuntos:hlwd
,eor01
e27
(case-insensitive) Cante Parabéns à sua linguagem de programação favorita - Em uma linguagem de sua escolha, faça o seguinte:
Happy Birthday to You Happy Birthday to You Happy Birthday Dear [the name of your favourite programming language] Happy Birthday to You
Não somos estranhos ao código do golfe, você conhece as regras, e eu também - Saída a letra completa de "Never Gonna Give You Up"
- Emita o sinal - dado um número, imprima -1 se for negativo, 0 se for 0 ou 1 se for positivo
- Conjectura de Collatz (OEIS A006577) - Partindo de um número inteiro, divida-o por 2 se for par ou multiplique por 3 e adicione 1 se for ímpar e repita o processo até chegar a 1. A saída deve ser o número de iterações leva você para chegar a 1.
- Uma matriz de desafios nº 1: Matrizes alternadas - Dada uma matriz de números inteiros, verifique se todos os itens indexados pares são iguais e todos os itens indexados ímpares são iguais e emita um valor verdadeiro ou falso de acordo.
- Eu sou uma matriz insignificante? - Dada uma matriz de números inteiros, verifique se as diferenças absolutas entre elementos consecutivos são menores ou iguais a 1 e emita um valor verdadeiro ou falso de acordo.
- Esse número é primo? - Dado um número inteiro positivo, escreva um programa completo para verificar se é primo e produza um valor verdadeiro ou falso de acordo.
- Eu sou um palíndromo. Você está? - Dada uma string, verifique se é palíndromo, enquanto seu programa / função também é palíndromo e produz dois valores distintos e consistentes de acordo.
- Soma os números na entrada padrão - Pegue uma série de números no STDIN e faça a saída deles.
- Encontre o fatorial - Dado um número inteiro
n
, produza o produto de todos os números inteiros entre1
en
inclusive. - Código mais curto para produzir saída infinita - Sem nenhuma entrada, produza saída infinita que, teoricamente, nunca interromperá a saída.
- Faça uma fatia de Pi - Envie este texto exato:
()()()()()()
|\3.1415926|
|:\53589793|
\::\2384626|
\::\433832|
\::\79502|
\::\8841|
\::\971|
\::\69|
\::\3|
\__\|
- Encontre o menor número que não divide N - Dado um número inteiro positivo N, produza o menor número inteiro positivo que não divide N
- Isso é par ou ímpar? - Dado um número inteiro N, produza sua paridade como valores de verdade / falsidade.
- Saída com o mesmo comprimento que o código - Escreva o código mais curto cuja saída tenha o mesmo comprimento que o código, onde a saída não seja a mesma que o código.
- Golf um quine para o bem! - Escreva o quine mais curto do seu idioma.
Para ser válido, um novo envio deve ter envios de golfe para pelo menos 2 dos problemas, com pelo menos 1 byte para cada. Você pode aumentar o tamanho de outros envios, mas a pontuação total deve diminuir em pelo menos 2 por resposta. Além disso, considere incluir um link para os programas atualizados. As soluções atualizadas não devem funcionar quando executadas com uma versão anterior do intérprete.
Como obter cookies
Eu tenho uma lista de 5 desafios, que não são obrigatórios para tentar, e não têm influência na sua pontuação, mas são simplesmente desafios adicionais para testar se o Bugle é capaz o suficiente. Sinta-se à vontade para incluir uma solução para qualquer número deles em sua resposta:
- Criar um auto-intérprete
- Crie um quine com capacidade de carga útil
- Covfefify uma string
- Hiperprogramação: N + N, N × N, N ^ N, tudo em um
- "NÓ" ou "NÃO"?
Descrições não incluídas, pois não são necessárias para que todos possam competir no desafio.
Como ganhar
Uma vez que a pontuação mínima ( que acreditamos ter 16 anos, embora sejam bem-vindas quaisquer tentativas de jogar golfe), obviamente a cadeia terminou, pois as soluções não conseguem uma pontuação melhor. Depois de 16 anos, o desafio permanece vivo por 1 mês depois, para dar a alguém a chance de jogar mais as soluções. Após este mês, o desafio acabou.
Quando o desafio terminar, migrarei o intérprete para um repositório GitHub e passarei pelas maquinações habituais de liberar uma linguagem estável. Você também pode começar a publicar soluções para desafios no PPCG no momento, usando o idioma mencionado, mas tente não inundar a página inicial com respostas. Em vez disso, espalhe-os por um período de tempo.
Formatação
Para facilitar a localização de informações na sua resposta, formate-a da seguinte maneira:
# [N]. [Score]
[New command + description]
[Interpreter/link to interpreter]
[Link to programs]
Onde [N]
está o seu número de resposta (1 para o primeiro, 2 para o segundo etc.)
Regras
- Você deve esperar 3 horas entre a postagem das respostas
- Você não pode postar duas vezes seguidas, a menos que nenhuma resposta tenha sido postada por 10 dias (exatamente 240 horas)
- Você não pode remover comandos anteriores.
- Seu intérprete não precisa jogar golfe, e sua contagem de bytes é completamente irrelevante aqui.
- Se alguém sugere um campo de golfe para os programas enquanto a sua resposta é a mais recente, você deve editar nos campos de golfe, e atualizar a sua pontuação.
- Você também pode fazer isso quando sua resposta estiver no meio da cadeia, desde que sua pontuação não fique mais baixa do que as respostas posteriores.
- Evite responder a quaisquer desafios existentes do PPCG usando esse idioma, pelo menos até que o desafio termine
- O intérprete é escrito em Python 3 e deve continuar assim por toda a cadeia. É proibido alterar o idioma.
- Novamente, para ser válido, um novo envio deve ter envios de golfe para pelo menos 2 dos problemas, com pelo menos 1 byte para cada.
Vamos começar!
Hello, World!
, será de 19 bytes. Mas se o comportamento das alterações de programa vazias, dependente da entrada, ele pode ser capaz de ser reduzido
for
loops) são permitidos, e encorajados a ser adicionado