Sie sollten ein 100 Byte langes Brainfuck-Programm (BF) schreiben.
Ein Zeichen entfernt auf jede erdenkliche Weise die 100 neuen (99 Byte langen) Programme. ZB für das Programm++.>.
der 5 Unterprogramme sind +.>.
, +.>.
, ++>.
, ++..
und ++.>
.
Ihre Punktzahl ist die Anzahl der eindeutigen Ausgaben, die die 100 Programme generieren. Eine höhere Punktzahl ist besser.
Einzelheiten
- Ihre Programme werden nach der Ausgabe des ersten Zeichens beendet.
- Ungültige oder nicht beendete Programme und Programme, die leere Ausgaben erzeugen, werden nicht in die Punktzahl eingerechnet.
- Die BF-Zellen sind 8-Bit-Wrapping-Zellen. (255 + 1 = 0, 0-1 = 255)
- Ihr Programm erhält keine Eingabe. Wenn Sie
,
im Code verwenden, wird die aktuelle Zelle auf gesetzt0
. - Auf der linken Seite der Startposition befinden sich keine Zellen. ZB
<.
ist ungültig, aber.<
gültig, da die Ausführung um beendet wird.
. Das Band ist in die andere Richtung ungebunden. - Programme mit unsymmetrischen Klammern (
[
und]
) sind ungültig. - Ihr ursprüngliches Programm kann kürzer als 100 Bytes sein, da es leicht auf 100 Bytes erweitert werden kann, ohne die Punktzahl zu ändern.
- Ihr ursprüngliches Programm muss kein gültiger BF-Code sein.
Sie können dieses python3-Programm (ideone link) verwenden , um die Bewertung Ihrer Antwort zu ermitteln. (Bei Programmen mit langer Laufzeit müssen Sie möglicherweise die maxstep
Variable ändern .)
Beispiel
(Der Einfachheit halber ist dieses Programm kürzer als 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)
Bei Gleichstand gewinnt derjenige mit dem kürzeren Code. (Ihr Programm kann kürzer als 100 Byte sein, wie im Abschnitt Details angegeben.) Wenn die Codes gleich lang sind, ist der Gewinner das frühere Poster.
Bonus-Rätsel: Können Sie ohne die fett gedruckte Einschränkung ein Programm mit 100 Punkten finden?