Wprowadzenie
Dla tych, którzy zastanawiają się, czym dokładnie jest Befunge , jest to dwuwymiarowy język oparty na stosach, stworzony w 1993 roku przez Chrisa Pressya. Zrobiłem 7 łamigłówek, które należy rozwiązać w Befunge-93 . To dość eksperymentalne wyzwanie, ale pomyślałem, że warto spróbować :). Pełna lista wszystkich poleceń używanych w Befunge-93 znajduje się tutaj .
Jak grać?
Zadanie jest trochę jak gliniarze i rabusie bez gliniarzy. To po prostu łamanie zgłoszeń, aby zdobyć punkty. Każda łamigłówka zawiera znaki zapytania. Muszą one zostać zastąpione dowolnym drukowanym znakiem ascii z zakresu 32 - 127
, w tym spacją. Zobacz następujący przykład:
??????@
Biorąc pod uwagę, że wynik musi być hi
. Po kilku zagadkach możemy dowiedzieć się, że rozwiązaniem było:
"ih",,@
Ale! Ty nie dać rozwiązanie. To jest zapobieganie oszustwom. Nie publikujesz rozwiązania, ale skrót . Skrót jest generowany za pomocą następującego fragmentu:
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 -->
Jak korzystać z fragmentu?
- Najpierw wklej rozwiązanie do sekcji przesyłania
- Po drugie, wprowadź swoją nazwę użytkownika (nic więcej, zostanie ona zweryfikowana po upływie terminu)
- Po trzecie, naciśnij Wygeneruj skrót! aby uzyskać swój osobisty skrót.
- Skopiuj i wklej skrót do swojego zgłoszenia.
Łamigłówki
Puzzle 1 (Ocena: 3)
??
??? ?
??????????
@
Dane wyjściowe (zwróć uwagę na końcowe białe znaki):
1 2 3 4 5 6 7 8 9 10
Puzzle 2 (Ocena: 3)
???? ?
??????????
?? ?
@
Wynik:
abcdefghijklmnopqrstuvwxyz
Puzzle 3 (Ocena: 5)
?????????
????? ???
? ?
? ? ? ?
?
? ?
?????? ? ?
? ? ?
? ? @
??????? ?
? ?
???? ??
? ??
Wynik:
Hello World!
Puzzle 4 (Ocena: 2)
??????@
Dane wyjściowe (zwróć uwagę na końcowe białe znaki):
123
Puzzle 5 (Ocena: 5)
?
?????
???@?????
??????
?????????
Wynik:
Befunge
Puzzle 6 (Ocena: 5)
? ? ?
?
??????????
?
?
???????? ??????????????
?????"floG edoC dna selzzuP gnimmargorP "??????
@
Wynik:
###################################
Programming Puzzles and Code Golf
###################################
Puzzle 7 (Ocena: 3)
???? ?????
???????
@???????
Wynik:
012345678910
- To jest wyzwanie kodowe , osoba z największą ilością punktów wygrywa!
- W przypadku remisu wygrywa osoba, która jako pierwsza przesłała wszystkie zgłoszenia.
- Ostatni dzień składania wniosków jest 10 stycznia UTC . Następnie masz 2 dni na opublikowanie pełnego rozwiązania, z hasłami już zawartymi. Zostaną one zweryfikowane :).
Jak publikować?
Użyj następującego fragmentu kodu, aby opublikować swoje zgłoszenie:
#N solutions:
Puzzle 1: `[hash 1]`
Puzzle 2: `[hash 2]`
etc.
Układanie puzzli nie jest konieczne. Wszystkie programy zostały przetestowane tutaj i zostaną wykorzystane do weryfikacji.
Powodzenia!
?
spacje)?