El objetivo es escribir un programa (cualquier cosa excepto un brainfuck explícito) que imprima la mejor regla de Barney Stinson :
Lo nuevo siempre es mejor.
cuando se interpreta normalmente, pero
¡Legen espera Dario!
Cuando se procesa con un intérprete Brainfuck.
Que gane el hermano más popular. Tienes 72 horas para ser legendario.
popularity-contest
polyglot
brainfuck
Thomas Ayoub
fuente
fuente
code-golf
es la mejor etiqueta para este desafío. En mi humilde opiniónpopularity-contest
sería mejor.Respuestas:
C#
Así que decidí ser un poco más ... creativo con mi entrada. El código Brainfuck está incrustado en C # como los diversos operadores (no en comentarios o en cadenas codificadas), mientras que el código C # opera en un principio similar a la forma en que Brainfuck imprime caracteres (lo que significa que no hay cadenas codificadas, y C # genera cada uno carácter individual como un entero y luego lo convierte en un carácter al imprimir).
Estoy seguro de que podría haber hecho esto más elegante, pero me tomó el tiempo suficiente para terminar como está.
Todo fue probado en este intérprete de JavaScript Brainfuck por Cal Henderson y con el compilador C # de Visual Studo 2012 (dirigido a .NET framework v4.0).
Este es el código original de Brainfuck que escribí para este desafío:
Cuando ejecuta el código C # a través de un intérprete Brainfuck, termina con los siguientes comandos (observe la adición de corchetes al principio, estos son de la declaración de matriz y no hacen nada, ya que la celda debajo del puntero de memoria en la matriz ya será 0):
fuente
Charla
escriba en un espacio de trabajo y presione "doIt", o envíe a BF. BF robado de los otros carteles, gracias.
fuente
Javascript / Brainfuck
Versión sin golf ya que no es un concurso de código de golf:
Esa fue la ocasión para mí de aprender BF y fue divertido :)
La dificultad fue nunca usarlo
,
ya que BF lo interpreta como entrada del usuario y asegúrese de que el byte sea 0 antes de usarlo[]
para acceder a elementos de matrices.La codificación JS es bastante simple, cada cadena antes de
/
codificar un carácter y cada longitud de cadena antes@
define el código ASCII en decimal. (+++++++@++++[>++@
=78
=N
)Puedes probar Brainfuck aquí: http://copy.sh/brainfuck/
fuente
Cúbicamente ( TIO ) / BF ( TIO )
(Actualizado el 8/8/17 para tener en cuenta los cambios de idioma en Cubically)
Básicamente, esto solo usa tantos caracteres del programa BF como puede en el programa Cubically, luego pega el resto del programa BF al final del mismo. No es necesaria la terminación forzada con
&
/E
en el programa Cubically.fuente
Python / BrainF ** k, 362 caracteres
Código BrainF ** k tomado de la respuesta eliminada de Clément Renaud.
Editar : el carácter nulo inicial ya no se imprime.
Utiliza un truco muy simple:
|
se agregaron caracteres al programa BF y las distancias entre ellos codifican la cadena impresa en Python. BF ignora principalmente el código de Python.fuente
.join
agregó un.
, pero no vi ningún daño (porque\0
es invisible). El+
está y.split
está bien: eliminé los caracteres del original.