Befunge Brain Teasers


15

pengantar

Bagi mereka yang bertanya-tanya apa sebenarnya Befunge , itu adalah bahasa berbasis dua dimensi yang dibuat pada tahun 1993 oleh Chris Pressy. Saya membuat 7 permainan asah otak yang perlu diselesaikan di Befunge-93 . Ini tantangan yang cukup eksperimental, tapi saya pikir ini layak dicoba :). Daftar lengkap semua perintah yang digunakan di Befunge-93 dapat ditemukan di sini .

Cara bermain?

Tugasnya agak seperti polisi dan perampok tanpa polisi. Itu hanya pada dasarnya retak pengiriman untuk mendapatkan poin. Setiap teka-teki berisi tanda tanya. Ini harus diganti oleh karakter ascii yang dapat dicetak dalam rentang 32 - 127, yang termasuk spasi. Lihat contoh berikut:

??????@

Diberikan bahwa output harus hi. Setelah beberapa kebingungan, kita dapat mengetahui bahwa solusinya adalah:

"ih",,@

Tapi! Anda tidak memberikan solusinya. Itu untuk pencegahan kecurangan. Anda tidak memposting solusinya, tetapi hash . Hash dihasilkan dengan potongan berikut:

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 -->

Bagaimana cara menggunakan snippet?

  • Pertama, tempelkan solusi ke bagian pengiriman
  • Kedua, masukkan nama pengguna Anda (tidak ada yang lain, ini benar-benar akan diverifikasi setelah batas waktu)
  • Ketiga, tekan Hasilkan Hash! untuk mendapatkan hash pribadi Anda .
  • Salin dan tempel hash ke dalam kiriman Anda.

Teka-teki

Puzzle 1 (Nilai: 3)

 ??
???      ?
??????????
         @

Output (perhatikan spasi spasi tambahan):

1 2 3 4 5 6 7 8 9 10 

Puzzle 2 (Nilai: 3)

 ????    ?
??????????
??       ?
         @

Keluaran:

abcdefghijklmnopqrstuvwxyz

Puzzle 3 (Nilai: 5)

  ?????????
    ?????  ???
    ?     ?
    ? ?   ?  ?
          ?
          ?  ?
  ??????  ?  ?
    ?     ?  ?
       ?  ?  @
  ??????? ?
    ?  ?
????  ??
?  ??

Keluaran:

Hello World!

Puzzle 4 (Nilai: 2)

??????@

Output (perhatikan spasi spasi tambahan):

123 

Puzzle 5 (Nilai: 5)

    ?
  ?????
???@?????
 ??????
?????????

Keluaran:

Befunge

Puzzle 6 (Nilai: 5)

?    ?   ?
     ?
??????????
     ?
     ?
     ????????                         ??????????????
     ?????"floG edoC dna selzzuP gnimmargorP "??????
     @

Keluaran:

###################################
 Programming Puzzles and Code Golf
###################################

Puzzle 7 (Nilai: 3)

???? ?????
   ???????
  @???????

Keluaran:

012345678910

  • Ini adalah , orang dengan jumlah poin terbanyak menang!
  • Dalam kasus seri, orang yang menyerahkan semua pengiriman terlebih dahulu, menang.
  • Hari terakhir untuk pengiriman adalah 10 Januari UTC . Setelah itu, Anda memiliki 2 hari untuk memposting solusi lengkap, dengan hash sudah termasuk. Ini akan diverifikasi :).

Bagaimana cara mengirim?

Gunakan cuplikan berikut untuk mengirim kiriman Anda:

#N solutions:

Puzzle 1: `[hash 1]`

Puzzle 2: `[hash 2]`

etc.

Tidak perlu memecahkan teka-teki secara berurutan. Semua program telah diuji di sini dan akan digunakan untuk verifikasi.

Semoga berhasil!


Saya kira tidak apa-apa jika kita menghapus spasi spasi (jika kita mengganti ?spasi dengan spasi)?
Martin Ender

Apakah Anda yakin ada solusi unik untuk setiap puzzle?
KSFT

@KSFT Apakah masalah jika solusinya unik?
Martin Ender

@ MartinBüttner Jika tidak unik dan seseorang memberikan solusi yang berbeda, hash tidak akan cocok.
KSFT

@KSFT Hash tidak akan cocok, karena nama pengguna adalah bagian dari hash. Tujuan dari hash hanya untuk memverifikasi siapa yang menemukan solusi yang bekerja terlebih dahulu.
Martin Ender

Jawaban:


5

7 solusi, 26 poin

Saya mengetik ini di ponsel saya, karena saya tidak memiliki akses ke komputer saya saat ini. Saya sebenarnya harus mengerjakan Puzzle 6 dengan pena & kertas.

Teka-teki 1 (Nilai 3 ):4f52d5b243

 1v
v:<      <
>.1+:56+-|
         @

Yang ini cukup lurus ke depan. Dapatkan 1di tumpukan, lalu cetak-tambah-bandingkan-loop sampai11 dipukul.

Teka-teki 2 (Nilai 3 ):85226eba20

 "`"     v
v"z":,:+1<
>-       |
         @

Pada dasarnya sama dengan yang sebelumnya, hanya dengan karakter bukan angka. Menggunakan rute IP yang berbeda.

Teka-teki 3 (Nilai 5 ):1ff5bcb1d9

  "!dlroW"v
    >,,,,  ,,v
    ,     "
    , ?      ,
          o
          l   
  ??,???  l   
    ,     e   
       ?  "  @
  ??^,"H" <
    ?  ?
????  ??
?  ??

Di sini saya sedikit murah. Dorong string ke tumpukan dan cetak karakter secara manual, navigasikan melalui spasi. Saya punya banyak ruang ekstra, jadi saya baru saja meninggalkan sebagian besar tanda tanya. Perhatikan spasi tambahan pada baris 6 hingga 8, saya tidak menghapusnya saat menghitung hash.

Teka-teki 4 (Nilai 2 ):f8b7bdf741

"{".  @

Sangat sederhana, dapatkan karakter dengan kode yang benar dan cetak sebagai angka, dengan dua ruang kosong.

Teka-teki 5 (Nilai 5 ):c4db4b6af9

    v
  ??"??
#,_@e">>:
 <"B"<^
ung"<^"ef

Ini menyenangkan untuk diperbaiki. Mungkin tidak bekerja dengan benar pada beberapa penerjemah karena membungkus string & lompatan, bekerja pada yang terhubung. Pada dasarnya, kode mendorong string output dan kemudian memasuki lingkaran pencetakan standar, membungkus sisi.

Teka-teki 6 (Nilai 5 ):356e912eec

1        v
     #
     v??v_

     5
      75<^                              p15:-1g15,:*
     >5+:,"floG edoC dna selzzuP gnimmargorP ">:#,_@
     @

Sekarang ini adalah "mahakarya". Saya benar-benar mengambil selembar kertas dan meluangkan waktu untuk ini. (Sebenarnya, saya melakukan beberapa pekerjaan tambahan dengan melewatkan spasi di string ketika menyalin.) Perhatikan spasi tambahan pada baris 4, saya tidak menghapusnya saat menghitung hash.

Kode ini bekerja dengan terlebih dahulu mendorong satu untuk masuk ke loop utama. Lingkaran menggunakan #baris kedua sebagai penghitung, dan keduanya mencetak dan mendorong #setiap iterasi. Setelah itu baris baru dicetak dan didorong. Selanjutnya, string yang diberikan didorong. Akhirnya, kode memasuki lingkaran pencetakan, yang mencetak semuanya pada tumpukan secara terbalik, yang berarti string, kemudian baris baru, dan akhirnya sisanya# .

Teka-teki 7 (Skor 3 ):0881fc2619

"0"> :,1+v
   |-":":<
  @>"10",,

Ini hampir sama dengan Puzzle 2, tetapi dengan rute yang berbeda, karakter keluaran yang berbeda, tambahan 01pada akhirnya dan bungkus cepat untuk menyelesaikannya.


Haha, saya seharusnya berpikir sedikit lebih lama untuk puzzle 3 dan 4. Semuanya terlihat bagus :)
Adnan

3

4 solusi, 15 poin

Saya harap saya tidak mengacaukan spasi putih di mana pun saat menghasilkan hash.

Teka-teki 1 (Nilai 3 ):de1de4c4c8

 v
v<       >
>1+:.:9`!|
         @

Teka-teki 3 (Nilai 5 ):071cad0879

  "!dlroW"v
    >,,,,  ,,v
    ,     "
    ,        ,
          o
          l
    ,     l
    ,     e
          "  @
    ^,"H" <

Teka-teki 4 (Nilai 2 ):531940bc43

"{".  @

Teka-teki 5 (Nilai 5 ):5bafaed8e9

    ^
  v >,,
n"<@,, ,"
 "e"^>,
uge"<^"Bf
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.