Code-Bowling
Você foi contratado pela Brunswick Bowling para criar um programa simples para exibir o texto Code Bowling
em seus monitores. Esta empresa vale um centavo bonita e você sente que você pode enganar-los por muito o pouco de dinheiro.
A descrição do trabalho indica claramente que eles pagam com base na pontuação e você está bastante confiante de que pode manipular o sistema de pontuação deles a seu favor e obter o maior cheque de pagamento possível desses caras. Para fazer isso, será necessário que você insira o máximo de código possível em seu programa / função, mesmo que o sistema de pontuação tenha sido projetado para impedir que você faça isso.
Saia dos seus cofrinhos, vamos codificar!
Desafio
O desafio é simplesmente imprimir o texto Code Bowling
, exatamente como está escrito aqui, com a maior pontuação possível. (Veja a seção: Sistema de pontuação abaixo)
Novas linhas iniciais e finais (quebras de linha) são aceitáveis.
Seu código pode ser um programa inteiro ou apenas uma função executável.
Regras
Obrigatório: Este desafio está usando o Boliche de Código: Regras Comuns, Revisão 1.0.0 ; Veja Meta para detalhes.
Proporção de caracteres: bytes
No boliche de código, uma contagem de caracteres é preferível a uma contagem de bytes. O raciocínio óbvio para isso é que caracteres unicode de vários bytes (por exemplo, 🁴) podem ser usados no lugar de caracteres unicode de byte único para aumentar a contagem de bytes e tornar o boliche mais sobre quem renomeia a maioria das variáveis com caracteres unicode de byte alto. do que quem estrategicamente cria código complexo e significativo.Nomes de variáveis / funções / objetos
Todos os nomes de variáveis (ou ponteiros de objetos, nomes de funções etc.) devem ter 1 caractere. O único momento aceitável para usar nomes de variáveis de 2 caracteres é após todas as variáveis de 1 caractere possíveis terem sido usadas. O único momento aceitável para usar nomes de variáveis de 3 caracteres é depois que todas as variáveis de 2 caracteres possíveis foram usadas. Etc.Código não utilizado
Todo o código deve ser usado. Significando que o programa deve falhar em sempre sempre concluir a tarefa corretamente, se qualquer caractere individual (ou conjunto (s) de caracteres variável) for / for removido. Naturalmente, um subconjunto do programa não deve ser capaz de concluir a tarefa sozinho, sem o restante do programa.Comentários
Não são permitidos comentários para contagem de caracteres, a menos que seja utilizado de alguma forma pelo seu programa / função.
Sistema de pontuação:
Desafio Pangram:
Um pangram é uma frase que usa todas as letras pelo menos uma vez. (A raposa marrom rápida pula sobre o cachorro preguiçoso).
Esse tipo de desafio possui sistemas de pontuação projetados onde um pangram perfeito alcançaria a pontuação máxima teórica (embora você não precise usar todos os personagens pelo menos uma vez.) Além disso, o uso de qualquer personagem mais de uma vez começará a sofrer uma penalidade. Esse desafio também se expande para mais do que apenas os caracteres alfabéticos.
Métrica de pontuação:
- Cada personagem usado aumenta sua pontuação em 1.
- O uso repetido de qualquer caractere alfanumérico (az, AZ, 0-9) resultará em uma dedução de 3 pontos por repetição (o primeiro uso não resulta em dedução).
- O uso repetido da pontuação básica
([!?.-,":';])
- incluindo os colchetes - resultará em uma dedução de 2 pontos por repetição.- O uso repetido de outros caracteres ASCII
{`~@#$%^&*_+=|\/><}
- incluindo os colchetes - resultará em uma dedução de 4 pontos por repetição.- O uso de espaços, tabulações e novas linhas resultará em uma dedução de 1 ponto por uso. Ou seja, eles não contam para o total de caracteres.
- Os caracteres não mencionados acima (caracteres exóticos) resultarão em uma dedução de 1 ponto por uso. Ou seja, eles não contam para o total de caracteres.
Ferramenta de pontuação:
Um widget de pontuação automatizado foi criado e pode ser encontrado aqui .
Esta é uma variante do código-boliche . O programa com a maior pontuação vence! (Como existe uma pontuação máxima de 94
, quem chegar primeiro (se for possível) será marcado como a resposta aceita, embora outros sejam livres para continuar a responder por diversão)