Dovresti scrivere un programma brainfuck (BF) lungo 100 byte.
Un carattere verrà rimosso da esso in ogni modo possibile con i 100 nuovi programmi (lunghi 99 byte) risultanti. Ad esempio per il programma ++.>.
dei 5 sottoprogrammi sono +.>.
, +.>.
, ++>.
, ++..
e ++.>
.
Il tuo punteggio sarà il numero di output unici generati dai 100 programmi. Il punteggio più alto è migliore.
Dettagli
- I programmi verranno chiusi dopo aver emesso il primo carattere.
- I programmi non validi o non terminanti e i programmi che generano output vuoti non vengono conteggiati per il punteggio.
- Le celle BF sono avvolgenti a 8 bit. (255 + 1 = 0, 0-1 = 255)
- Il tuo programma non ha ricevuto input. Se si utilizza
,
nel codice impostato è la cella corrente su0
. - Non ci sono celle sul lato sinistro della posizione iniziale. Ad esempio,
<.
non è valido ma.<
è valido poiché l'esecuzione è terminata alle.
. Il nastro non ha limiti nell'altra direzione. - I programmi con parentesi sbilanciate (
[
e]
) non sono validi. - Il programma originale può essere inferiore a 100 byte in quanto è facile estenderlo a 100 byte senza modificare il punteggio.
- Il tuo programma originale non deve essere un codice BF valido.
Puoi usare questo programma python3 (collegamento ideone) per determinare il punteggio della tua risposta. (Per programmi a esecuzione prolungata potrebbe essere necessario modificare la maxstep
variabile.)
Esempio
(Per semplicità questo programma è più breve di 100 byte.)
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)
In caso di pareggio, il vincitore è quello con il codice più breve. (Il programma può essere inferiore a 100 byte, come indicato nella sezione Dettagli.) Se i codici hanno la stessa lunghezza, il vincitore è il poster precedente.
Puzzle bonus: senza la restrizione in grassetto puoi trovare un programma con punteggio 100?