Einführung
Für diejenigen, die sich fragen, was Befunge genau ist, ist es eine zweidimensionale stapelbasierte Sprache, die 1993 von Chris Pressy entwickelt wurde. Ich habe 7 Rätsel gemacht , die in Befunge-93 gelöst werden müssen . Dies ist eine ziemlich experimentelle Herausforderung, aber ich dachte, es ist einen Versuch wert :). Eine vollständige Liste aller in Befunge-93 verwendeten Befehle finden Sie hier .
Spielanleitung?
Die Aufgabe ist ein bisschen wie bei Bullen und Räubern ohne Bullen. Im Grunde geht es nur darum, Einsendungen zu knacken, um Punkte zu bekommen. Jedes Puzzle enthält Fragezeichen. Diese müssen durch alle druckbaren ASCII-Zeichen im Bereich 32 - 127
einschließlich Leerzeichen ersetzt werden. Siehe folgendes Beispiel:
??????@
Voraussetzung ist, dass der Ausgang sein muss hi
. Nach einigen Rätseln können wir feststellen, dass die Lösung war:
"ih",,@
Aber! Sie nicht geben Sie die Lösung. Das ist zur Verhinderung von Betrug. Du postest nicht die Lösung, sondern den Hash . Der Hash wird mit dem folgenden Snippet generiert:
String.prototype.hashCode = function() { var namevalue = document.getElementById("inputname").value; var namenumber = 123;for (var character = 0; character < namevalue.length; character++) {namenumber += namevalue.substring(0, 1).charCodeAt(0);}var hash = 123 + namenumber, i, chr, len;if (this.length === 0) {return 0;}for (i = 0, len = this.length; i < len; i++) {chr = this.charCodeAt(i);hash = ((hash << 5) - hash) + chr; hash |= 0; }hash = Math.abs(hash);if ((hash).toString(16).length < 20) {for (var rand = 123; rand < 199; rand++) {hash = hash * rand;if ((hash).toString(16).length >= 20) { break; }}}return (hash).toString(16).substring(2, 12);};function placeHash() { var pretext = document.getElementById("inputhash").value; var resultinghash = pretext.hashCode(); document.getElementById("resulthash").innerHTML = 'Your hash: <span class="hashtext">' + resultinghash + "</span>";}
p {font-family: monospace;color: black;} .hashtext{color: red;font-weight:bold}
<div class="container"><p>Personal hash generator:<p><textarea id="inputhash" placeholder="Your submission" cols="40" rows="4"></textarea><br><textarea id="inputname" placeholder="Your name" cols="40" rows="1"></textarea><br><button class="hashbutton" onclick="placeHash()">Generate Hash!</button><br><p id="resulthash">Your hash:</p></div><!-- Created by Adnan -->
Wie benutze ich das Snippet?
- Fügen Sie zuerst die Lösung in den Einreichungsbereich ein
- Zweitens geben Sie Ihren Benutzernamen ein (sonst nichts, dies wird tatsächlich nach Ablauf der Frist überprüft)
- Drittens drücken Sie Generate Hash! um Ihren persönlichen Hash zu erhalten.
- Kopieren Sie den Hash und fügen Sie ihn in Ihren Beitrag ein.
Die Rätsel
Puzzle 1 (Punkte: 3)
??
??? ?
??????????
@
Ausgabe (beachten Sie das nachfolgende Leerzeichen):
1 2 3 4 5 6 7 8 9 10
Puzzle 2 (Punktzahl: 3)
???? ?
??????????
?? ?
@
Ausgabe:
abcdefghijklmnopqrstuvwxyz
Puzzle 3 (Punktzahl: 5)
?????????
????? ???
? ?
? ? ? ?
?
? ?
?????? ? ?
? ? ?
? ? @
??????? ?
? ?
???? ??
? ??
Ausgabe:
Hello World!
Puzzle 4 (Punktzahl: 2)
??????@
Ausgabe (beachten Sie das nachfolgende Leerzeichen):
123
Puzzle 5 (Punktzahl: 5)
?
?????
???@?????
??????
?????????
Ausgabe:
Befunge
Puzzle 6 (Punktzahl: 5)
? ? ?
?
??????????
?
?
???????? ??????????????
?????"floG edoC dna selzzuP gnimmargorP "??????
@
Ausgabe:
###################################
Programming Puzzles and Code Golf
###################################
Puzzle 7 (Punktzahl: 3)
???? ?????
???????
@???????
Ausgabe:
012345678910
- Dies ist eine Code-Herausforderung , die Person mit der höchsten Punktzahl gewinnt!
- Bei Stimmengleichheit gewinnt die Person, die zuerst alle Einsendungen eingereicht hat .
- Der letzte Tag für die Einreichung ist der 10. Januar UTC . Danach haben Sie 2 Tage Zeit, um die vollständige Lösung mit den bereits enthaltenen Hashes zu veröffentlichen. Diese werden überprüft :).
Wie poste ich?
Verwenden Sie das folgende Snippet, um Ihre Einreichung zu veröffentlichen:
#N solutions:
Puzzle 1: `[hash 1]`
Puzzle 2: `[hash 2]`
etc.
Es ist nicht notwendig, die Rätsel in der richtigen Reihenfolge zu lösen. Alle Programme wurden getestet hier und werden zur Überprüfung verwendet werden.
Viel Glück!
?
Leerzeichen durch Leerzeichen ersetzen ).