Inspiriert von dieser Frage ist es heute Ihr Ziel, eine URL in Brainfuck zu kodieren.
Mein Browser wurde gehackt! Die Positionsleiste wurde in einen Brainfuck-Interpreter verwandelt. Ich brauche ein Programm, das eine URL in ein Brainfuck-Programm verwandelt. Mein Computer ist auch sehr langsam. Wenn das Brainfuck-Programm klein ist, ist es besser.
Oh, und ich habe nur noch einen Arbeits-Tab offen, meinen Twitter. Sie können mir das Programm also nur in einem Tweet senden.
Schreiben Sie ein Programm, das in einen Tweet (140 Zeichen) in einer beliebigen Sprache passt, die eine Zeichenfolge als Eingabe verwendet und ein Brainfuck-Programm ausgibt.
Dieses Brainfuck-Programm wird ohne Eingabe ausgeführt und generiert eine Ausgabe.
Diese Ausgabe wird in die Positionsleiste von Google Chrome eingefügt und ausgeführt.
Wenn das Verhalten von Google Chrome mit dem Verhalten identisch ist, das Sie durch Eingabe der Eingabezeichenfolge von Nummer 1 erhalten würden, ist die Lösung gültig. Die Umleitung durch URL-Shortener wird als unterschiedliches Verhalten angesehen. Bleiben Sie mindestens in derselben Domain.
Sie können davon ausgehen, dass der Brainfuck-Interpreter in jeder Zelle ganzzahlige Ganzzahlen mit unendlicher Genauigkeit und eine unbegrenzte Anzahl von Zellen hat.
Ihre Punktzahl wird durch die Summe der Längen der Brainfuck-Programme bestimmt, die zum Codieren der folgenden URLs generiert wurden:
https://www.google.com/
/codegolf/47895/
http://www.golfscript.com/golfscript/examples.html
http://en.wikipedia.org/wiki/Percent-encoding
ftp://ftp.freebsd.org/pub/FreeBSD/
https://github.com/isaacg1/pyth/blob/master/doc.txt#L92
http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README
Die kleinste Punktzahl gewinnt.
http://www.google.com/
oder wird es jemals einfach seingoogle.com
? (Beide sind für Google Chrome gültig, aber Ihre Liste enthält nur die vollständigen Formulare.) PS Ich habe fast den Wunsch, eine Erweiterung für Chrome zu schreiben, die dies tut ...http://www.google.com/
das Gehirnfick Programm erzeugt es kann Ausganggoogle.com
,www.google.com
usw., weil sie alle Ergebnis in der gleichen Seite. Aber zum Beispielftp://ftp.freebsd.org/pub/FreeBSD/
ist nicht das gleiche wieftp.freebsd.org/pub/FreeBSD/
.ftp://ftp.freebsd.org/pub/FreeBSD/
ist in der Tat das gleiche wieftp.freebsd.org/pub/FreeBSD/
in Google Chrome. Das macht die Herausforderung ein bisschen einfacher als ich beabsichtigt hatte, aber so ist das Leben. Ich werde die Anforderungen nicht ändern, daher ist es sicher, vorher nur etwas auszuziehen://
.Antworten:
Pyth - 118 Bytes, Punktzahl: 154 + 567 + 597 + 620 + 530 + 875 + 1092 =
6630662346534435Jetzt mit dem Faktor Multiplikation algo!
Dies ist ein ziemlich einfacher Algorithmus, obwohl er etwas besser ist als die oben genannten.
Ich hatte vor, Pyth zu verwenden, aber mit dem aktuellen Algorithmus passt Python <140 Bytes.Es entfernt zuerst das
http://
mitsplit("//")
und daswww.
und/
am Ende. Anschließend wird mit der Funktion min überprüft, welche der drei in Betracht gezogenen Optionen die beste ist:+
oder-
, um den aktuellen Zellenwert auf den gewünschten Zellenwert zu aktualisieren+
'sIch setze dann immer ein,
.
um jedes Zeichen auszugeben.Eine ausführliche Erklärung des neuen Codes folgt in Kürze. Ich habe das Golfen halbherzig bewertet, besonders das Strippen
www.
und das/
am Ende, aber ich kann mich nicht darum kümmern, da ich 20 Bytes unter dem Limit bin.Das funktioniert überraschend auf dem
ftp://
Urls , da dies Chrom und Chrom macht automatischftp.freebsd.org/pub/FreeBSD/
inftp://ftp.freebsd.org/pub/FreeBSD/
Ich plane, als nächstes ein Wörterbuch zu verwenden, um die Zellenwerte zu speichern und zu sehen, ob das Zeichen bereits in einer Zelle erstellt wurde.
Brainfuck Omnibox-Erweiterung
Das ist richtig! Nachdem ich den Kommentar von @ BrainSteel gesehen hatte, wusste ich, dass ich ihn machen musste. Dies nimmt nicht die gesamte Omnibox über, nur wenn Sie das tun bf, tab. Da die Omnibox-API seltsam ist, kann ich den Code nicht an die Omnibox weiterleiten. Ich muss mich selbst darum kümmern. Also
http://
überprüfe ich es selbst und setze dann die URL des Tabs.Da ich nicht die 5 Dollar bezahlen wollte, die nötig sind, um Ihre Erweiterung in den Webstore zu stellen, müssen Sie sie manuell installieren. Laden Sie einfach die Zip- Datei von hier herunter: https://drive.google.com/file/d/0B0qkKIzGc0QiNzBzVUJjZkRIZ0k/view?usp=sharing , entpacken Sie, gehen Sie auf die Erweiterungsseite in Chrome, klicken Sie oben rechts auf das Optionsfeld für den Erweiterungsmodus und Laden Sie die entpackte Erweiterung.
Hoffe euch gefällt es! :) :)
quelle
ftp://
URL.ftp://
. Naja.C,
140134132138128139 Bytes263 + 816 + 911 + 955 + 827 + 1355 + 1779 =
72696906 BytesUpdate: 6 Bytes weniger, dank Nutki!
Erneut aktualisieren, 128 Bytes. Code ist deutlich weniger lesbar. Es wird nun auch versucht, die URL zu
ftp://
entfernen.Aktualisieren Sie die dritte mit 139 Bytes. Code ist ein bisschen lesbarer und hat ein böses undefiniertes Verhalten beseitigt. Wenn dem Site-Namen ein vorangestellter Site-Name vorangestellt ist
www.
, wird er entfernt. Ich bin unter 7 km gefahren, aber ich denke, ich muss Maltysen mit Pyth nachgeben. Gut gemacht.Ein bisschen entwirrt:
Dieser Code nimmt eine URL in der Befehlszeile, und wandelt sie in BF nur unter Verwendung von
.
,-
, und+
. Der Code macht einen Versuch , die Kette von Streifenftp://
,http://
,https://
, und ,www.
bevor BF umwandelt. Hier ist eine Liste der Ausgänge der Ausgänge:quelle
for(;c-a;a+=c>a,a-=c<a)p(c>a?43:45)
sollte funktionieren.Brainfuck, 77 Bytes, Score = 31647
Punktzahl ist die Summe
codepoint+4
für jeden Charakter.(Verwendet die BF-Implementierung mit EOF = 0.)
Beispiel:
quelle
JavaScript (ES6) - 137 Bytes, Punktzahl - 7413
Dies nutzt nur ., +und -. Sie können es in der Firefox-Konsole testen.
Dies ist mein Punktezähler:
quelle