O objetivo é escrever um programa (qualquer coisa, exceto um explícito golpe cerebral) que imprima a melhor regra de Barney Stinson :
Novo é sempre melhor.
quando interpretado normalmente, mas
Legen ... espere ... desconfiado!
Quando processado com um intérprete Brainfuck.
Que ganhe o irmão mais popular. Você tem 72 horas para ser lendário.
popularity-contest
polyglot
brainfuck
Thomas Ayoub
fonte
fonte
code-golf
é a melhor tag para esse desafio. IMHOpopularity-contest
seria melhor.Respostas:
C #
Então decidi ser um pouco mais ... criativo com a minha entrada. O código Brainfuck é incorporado ao C # como os vários operadores (não nos comentários ou em cadeias codificadas), enquanto o próprio código C # opera com um princípio semelhante ao modo como Brainfuck imprime caracteres (o que significa que não há cadeias codificadas e o C # gera cada caractere individual como um número inteiro e o converte em um caractere ao imprimir).
Tenho certeza de que poderia ter feito isso mais elegante, mas demorei o suficiente para terminar como está.
Tudo foi testado neste intérprete JavaScript Brainfuck por Cal Henderson e com o compilador C # do Visual Studo 2012 (direcionado ao .NET framework v4.0).
Este é o código Brainfuck original que escrevi para este desafio:
Ao executar o código C # através de um intérprete Brainfuck, você termina com os seguintes comandos (observe a adição de colchetes no início, estes são da declaração da matriz e não fazem nada, pois a célula sob o ponteiro de memória em a matriz já será 0):
fonte
Conversa fiada
digite em um espaço de trabalho e pressione "doIt" ou envie para BF. BF roubado dos outros pôsteres - obrigado.
fonte
Javascript / Brainfuck
Versão sem golfe, pois não é um concurso de código-golfe:
Essa foi a ocasião para eu aprender BF e isso foi divertido :)
A dificuldade era nunca usá-lo,
,
pois o BF o interpreta como entrada do usuário e certifique-se de que o byte seja 0 antes de usar[]
para acessar elementos de matrizes.A codificação JS é bastante simples, cada sequência antes de
/
codificar um caractere e o comprimento de cada sequência antes@
define o código ASCII em decimal. (+++++++@++++[>++@
=78
=N
)Você pode testar o Brainfuck aqui: http://copy.sh/brainfuck/
fonte
Cubicamente ( TIO ) / BF ( TIO )
(Atualizado em 8/4/17 para dar conta das alterações de idioma no Cubically)
Basicamente, isso usa o máximo de caracteres do programa BF que puder no programa Cubically e, em seguida, cola o restante do programa BF no final. Nenhuma rescisão forçada com
&
/E
no programa Cubically é necessária.fonte
Python / BrainF ** k, 362 caracteres
Código BrainF ** k extraído da resposta excluída de Clément Renaud.
Editar - o caractere nulo inicial não é mais impresso.
Utiliza um truque muito simples - os
|
caracteres foram adicionados ao programa BF e as distâncias entre eles codificam a sequência impressa em Python. O código Python é principalmente ignorado pelo BF.fonte
.join
adicionei um.
, mas não vi nenhum dano (porque\0
é invisível). O+
é e.split
está OK - removi os caracteres do original.