Debería escribir un programa de Brainfuck (BF) de 100 bytes de longitud.
Un personaje se eliminará de todas las formas posibles de los 100 nuevos programas resultantes (99 bytes de longitud). Por ejemplo, para el programa de ++.>.
las 5 subprogramas son +.>.
, +.>.
, ++>.
, ++..
y ++.>
.
Su puntaje será el número de resultados únicos que generan los 100 programas. Mayor puntaje es mejor.
Detalles
- Sus programas finalizarán después de generar el primer carácter.
- Los programas no válidos o que no terminan y los programas que generan salidas vacías no se cuentan para la puntuación.
- Las celdas BF son envolturas de 8 bits. (255 + 1 = 0, 0-1 = 255)
- Su programa no recibe ninguna entrada. Si usa
,
en el código, establece la celda actual en0
. - No hay celdas en el lado izquierdo de la posición inicial. Por ejemplo,
<.
no es válido pero.<
es válido ya que la ejecución finaliza en.
. La cinta no tiene límites en la otra dirección. - Los programas con corchetes desequilibrados (
[
y]
) no son válidos. - Su programa original puede tener menos de 100 bytes, ya que es fácil extenderlo a 100 bytes sin cambiar la puntuación.
- Su programa original no tiene que ser un código BF válido.
Puede usar este programa python3 (enlace ideone) para determinar el puntaje de su respuesta. (Para programas de larga ejecución, es posible que deba modificar la maxstep
variable).
Ejemplo
(Para simplificar, este programa es más corto que 100 bytes).
Solution: ++,+[-]+><.-,-.
Score: 3
Explanation:
Subprogram => Output
+,+[-]+><.-,-. => 1
+,+[-]+><.-,-. => 1
+++[-]+><.-,-. => 1
++,[-]+><.-,-. => 1
++,+-]+><.-,-. => None
++,+[]+><.-,-. => None
++,+[-+><.-,-. => None
++,+[-]><.-,-. => 0
++,+[-]+<.-,-. => None
++,+[-]+>.-,-. => 0
++,+[-]+><-,-. => 255
++,+[-]+><.,-. => 1
++,+[-]+><.--. => 1
++,+[-]+><.-,. => 1
++,+[-]+><.-,- => 1
Unique outputs are [0, 1, 255]
Score is 3 for ++,+[-]+><.-,-. (length = 15)
En caso de empate, el ganador es el que tiene el código más corto. (Su programa puede tener menos de 100 bytes como se indica en la sección Detalles). Si los códigos tienen la misma longitud, el ganador es el cartel anterior.
Bonus puzzle: sin la restricción en negrita, ¿puedes encontrar un programa con puntaje 100?