Você precisa fazer três coisas:
- Declaração de uma tarefa, T .
- Solução da tarefa em linguagem não tipicamente usado para jogar golfe, A .
- Solução da tarefa em linguagem tipicamente usado para jogar golfe, B . Não tente apenas inchar B para aumentar a pontuação; pense como se B tivesse sido escrito pelo seu concorrente.
Use o bom senso na definição typically used for golfing
, tente maximizar a diversão para outros usuários.
Outros usuários podem propor B
s melhores (talvez incluindo em outros idiomas "golfe").
A pontuação é (length_in_bytes(B)+5)/(length_in_bytes(A)+5)
, quanto mais, melhor. (Talvez a fórmula de pontuação deva ser alterada? ..)
A idéia principal é inventar uma tarefa em que idiomas que normalmente apresentam bom desempenho no codegolf enfrentam um problema. Pode ser a força repentina de um idioma usual na tarefa especificada ou a fraqueza repentina de algum idioma de golfe.
Evite tarefas que mencionem linguagens de programação específicas, como Input a string and execute it as a Scheme code
.
Respostas:
Minha pergunta anterior, Imprimir uma onda sinusoidal (verticalmente), se qualifica neste momento. Estou postando aqui como uma solução, também esperando que vocês possam apresentar algumas soluções mais curtas para a minha pergunta original.
Conforme exigido por Vi., Publicarei um resumo da pergunta.
Imprima uma onda sinusoidal contínua rolando verticalmente em um terminal. O programa não deve terminar e deve rolar a onda continuamente para baixo (exceto até SIGINT). Você pode assumir que o estouro não é um problema (ou seja, você pode usar loops infinitos com contadores crescentes ou recursão infinita).
A onda deve satisfazer as seguintes propriedades:
|
Existe uma amostra de saída na minha pergunta original, mas não a estou postando aqui, porque isso tornará minha resposta ridiculamente longa. Minha pergunta original pode ser vista aqui: Imprimir uma onda sinusoidal (verticalmente)
A
Atualmente, o mais curto : uma solução Perl com 48 caracteres: https://codegolf.stackexchange.com/a/18655/12205B
Atualmente, o mais curto : uma solução J com 54 caracteres: https://codegolf.stackexchange.com/a/18649/12205Atualmente, a pontuação desta resposta é 1.113 (uma pontuação muito baixa)
fonte
Adicione dois números
Obtenha dois números do STDIN e adicione-os. Você precisa suportar números de ponto flutuante, portanto 0,5 + 1,5 deve ser igual a 2.
Perl 5 (com
-E
)GolfScript
fonte
(24+5)/(8+2+5) = 1.9(3)
.-E
também contados como bytes do programa.n%'+'*'"#{ }"'n/\*~
onde o caractere{}
é uma nova linha literal (não suportada nos comentários).+/".1!:1,~1
. O APL provavelmente seria ainda menor.Imprimir 'Olá, mundo!' para o stdout.
PHP, 13 bytes
Golfscript, 15 bytes
Pitão, 14 bytes
fonte
H
Pontuação 48/37 ou 1. (297)
T: escreva um trecho de código que encerre o programa após exatamente uma hora (o mais próximo possível, como dentro de um segundo) da execução. Não se preocupe com exceções, elas podem não ser tratadas.
A: Java (32)
B: é para o Befunge 98, requer a impressão digital TIME (43)
Isso leva a hora, o minuto e o segundo no momento da execução e coloca as células 02, 01 e 00. Em seguida, passa
;
para a segunda parte. A segunda parte funciona da seguinte maneira:da mesma forma para o minuto e a hora.
Observe que o Befunge retornará automaticamente ao início da linha quando o final de uma linha for atingido.
Como podemos ver, o Befunge não é bom quando se trata de esperar por horários específicos. No entanto, Java não é ruim.
fonte
⎕DL 3600
class Main{public static void main
...System.exit(0);
ou envolver seu sono em ummain
método.error: not a statement
Saída de um determinado arquivo de texto (498.388888 pontos)
A saída do objetivo está aqui .
O script Python 3.4.3 para imprimi-lo é de 49 bytes:
O programa CJam ingênuo igual à saída do objetivo, envolvendo a cadeia de saída
"..."
e escapando a cada uma"
que ocorre nela, seria 26908 bytes.fonte
Diga "Olá, mundo!" (50/26 ~ 1,92)
Mostre uma caixa de mensagem para dizer "Olá, mundo!"
Javascript
Em um navegador com suporte para DOM Nível 0+.
Perl
Executando no ActivePerl com Win32 :: GUI.
fonte
alert
não é inerentemente parte do JS, e o programa GolfScript é apenas um comentário.Saída "Olá, mundo!" até o usuário pressionar "q",
1,842105/44 = 2,386QBasic (
5239 caracteres)Desde que postei minha resposta original, descobri que era possível desativar a formatação automática no QB64. : ^ D Com o número da linha e o
?
atalho paraPRINT
, isso parece uma expressão ternária em idiomas do tipo C.Primeira versão:
Perl 5 (100 caracteres)
O acima funcionará apenas em sistemas UNIX (certos?) (Testado no Ubuntu 12.04). É possível que alguém possa usar várias plataformas e reduzi -lo a 91 caracteres usando o módulo Term :: ReadKey , mas não o testei:
fonte
Olá mundo (3 1/3 pontos)
Escreva um programa que produza
Hello World.
.HQ9 + (1 caractere)
Esta não é a linguagem "normalmente usada para jogar golfe", então acredito que se encaixa aqui. Trabalha neste intérprete, a propósito .
GolfScript (15 caracteres)
Duvido que possa ficar mais curto, mesmo que seja GolfScript.
fonte
HQ9+
combina como uma linguagem. Ele é projetado para truques / enigmas / diversão. Brainfuck / unlambda / outras línguas esotéricas também não parece terno como A .HQ9+
como B linguagem e vencê-lo por Java ou tal ...Saída "Olá, mundo!", 33/97 = 2,94
Escreva um programa que produza
Hello world!
Arduino ou GML
ou
Ambos são 28 caracteres.
GTB
Eu uso muito o GTB para jogar golfe (especialmente desde que eu o criei, e é Turing completo). Infelizmente, há apenas suporte limitado para caracteres minúsculos (porque a calculadora TI-84 não pode lidar com isso). Este é provavelmente o programa GTB mais curto que pode gerar o Hello world!
92 caracteres.
fonte
cos
s eexprs
ou realmente não pode simplesmente produzir algo de maneira regular? Ou o"
personagem na verdade não é uma string literal e está me confundindo ..."Hello world!"