Das Ziel ist es, ein Programm zu schreiben (außer explizitem Brainfuck), das Barney Stinsons beste Regel ausgibt :
Neu ist immer besser.
wenn normal interpretiert, aber
Legen Sie ... warten Sie ... dary!
Bei der Bearbeitung mit einem Brainfuck-Interpreter.
Möge der beliebteste Bruder gewinnen. Sie haben 72 Stunden, um legendär zu sein.
popularity-contest
polyglot
brainfuck
Thomas Ayoub
quelle
quelle
code-golf
ist der beste Tag für diese Herausforderung. IMHOpopularity-contest
wäre besser.Antworten:
C #
Also habe ich beschlossen, mit meinem Beitrag ein bisschen kreativer zu werden. Der Brainfuck-Code wird als die verschiedenen Operatoren in C # eingebettet (nicht in Kommentaren oder fest codierten Zeichenfolgen), während der C # -Code selbst nach einem ähnlichen Prinzip arbeitet wie die Art und Weise, in der Brainfuck Zeichen druckt (dh, es gibt keine fest codierten Zeichenfolgen, und C # generiert jede ein einzelnes Zeichen als Ganzzahl und wandelt es dann beim Drucken in ein Zeichen um.
Ich bin sicher, ich hätte das eleganter machen können, aber es hat lange genug gedauert, bis ich fertig war.
Alles wurde auf diesem JavaScript-Brainfuck-Interpreter von Cal Henderson und mit dem C # -Compiler von Visual Studo 2012 (auf .NET Framework v4.0 ausgerichtet) getestet.
Dies ist der ursprüngliche Brainfuck-Code, den ich für diese Herausforderung geschrieben habe:
Wenn Sie den C # -Code über einen Brainfuck-Interpreter ausführen, erhalten Sie die folgenden Befehle (beachten Sie das Hinzufügen der eckigen Klammern am Anfang, diese stammen aus der Array-Deklaration und tun nichts, da die Zelle unter dem Speicherzeiger in Das Array wird bereits 0 sein):
quelle
Smalltalk
Tippen Sie in einen Arbeitsbereich und drücken Sie "doIt" oder senden Sie an BF. BF von den anderen Plakaten gestohlen - danke.
quelle
Javascript / Brainfuck
Ungolfed-Version, da es sich nicht um einen Code-Golf-Wettbewerb handelt:
Das war die Gelegenheit für mich, BF zu lernen und das hat Spaß gemacht :)
Die Schwierigkeit bestand darin , BF niemals
,
als Benutzereingabe zu interpretieren und sicherzustellen, dass das Byte 0 ist, bevor[]
auf Elemente von Arrays zugegriffen wird.Die JS-Codierung ist recht einfach: Jede Zeichenfolge vor der
/
Codierung eines Zeichens und jede Zeichenfolge vor der@
Definition von ASCII-Code in Dezimalzahl. (+++++++@++++[>++@
=78
=N
)Sie können Brainfuck hier testen: http://copy.sh/brainfuck/
quelle
Kubisch ( TIO ) / BF ( TIO )
(Aktualisiert am 04.08.17, um Sprachänderungen in Cubically zu berücksichtigen)
Grundsätzlich werden nur so viele Zeichen aus dem BF-Programm verwendet, wie es im Cubically-Programm möglich ist, und der Rest des BF-Programms wird am Ende angefügt. Eine erzwungene Beendigung mit
&
/E
im Cubically-Programm ist nicht erforderlich.quelle
Python / BrainF ** k, 362 Zeichen
BrainF ** k-Code aus der gelöschten Antwort von Clément Renaud.
Bearbeiten - Das anfängliche Nullzeichen wird nicht mehr gedruckt.
Benutzt einen sehr einfachen Trick -
|
Zeichen wurden zum BF-Programm hinzugefügt und die Abstände zwischen ihnen kodieren den in Python gedruckten String. Der Python-Code wird von BF meist ignoriert.quelle
.join
hinzugefügt wurde.
, aber kein Schaden festgestellt wurde (da\0
unsichtbar). Das+
ist und.split
ist in Ordnung - Ich habe die Zeichen aus dem Original entfernt.