Ini adalah utas polisi. Utas perampok ada di sini .
Tantangan Anda adalah menulis program atau fungsi yang, dengan input tertentu, mencetak string yang tepat Hello, World!
dan baris baru. Kapitalisasi, spasi dan tanda baca harus tepat.
Input dapat diambil melalui input standar, file, atau argumen baris perintah / fungsi. Output dapat diberikan melalui nilai balik, menulis ke file, atau output standar.
Program Anda harus mencetak Hello, World!
setidaknya satu input. Ketika program Anda diberi input yang salah (yaitu input yang tidak membuatnya mencetak Hello, World!
), ia dapat melakukan apa pun yang Anda suka - crash, cetak omong kosong acak, panggil Chuck Norris, dll.
Anda tidak boleh menggunakan algoritma hashing atau metode serupa yang mengaburkan input yang diperlukan.
Pengajuan lebih disukai untuk dapat dijalankan & dapat retak di TIO . Pengajuan yang tidak dapat dijalankan atau retak di TIO diizinkan, tetapi harap sertakan instruksi untuk mengunduh / menjalankannya.
Setelah satu minggu, tantangan ini akan ditutup untuk pengiriman polisi di masa depan. Pemenangnya adalah kode terpendek yang tidak terpecahkan setelah seminggu mempostingnya ("itu" adalah kode, bukan tantangan ini). Pemenang akan diterima setelah dua minggu.
Setelah satu minggu berlalu sejak posting, tandai jawaban Anda aman dan tunjukkan inputnya (dalam a > ! spoiler quote
). Jika seorang perampok meretakkan kiriman Anda (sebelum minggu berakhir), harap tandai sebagai retak dan tunjukkan input penghentian (dalam a > ! spoiler quote
).
Mencari kiriman yang tidak retak?
fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
sha3
termasuk dalam kategori itu, tetapi sebaliknya di mana Anda menarik garis? Maksud saya,mod 1e3
ini juga merupakan fungsi hash, dan saya bahkan akan melangkah sejauh ini dan berpendapat bahwa banyak kiriman akan menjadi fungsi hash, karena tantangan ini pada dasarnya meminta hal tersebut.Jawaban:
Python 3,
191186 byte (AMAN!)Sama seperti jawaban saya sebelumnya, tetapi tanpa pernyataan noob eval, sehingga seseorang benar-benar harus menyelesaikan masalah yang saya buat.
sekarang jalankan dengan parameter yang benar, seperti
python3 hw.py 1 2 3
Sunting : versi sebelumnya tidak memiliki koma di "Halo, Dunia!", Dan saya juga menyadari bahwa itu memiliki penghitungan yang tidak perlu, yang sekarang hilang.
Sunting 2 : Hanya untuk bersenang-senang, ini adalah versi Pyth yang hampir identik (47 byte) dari kode yang sama:
Input diambil dari
stdin
dan dalam bentuk daftar argumen, seperti[1,2,3]
Saya tidak melihat gunanya memposting jawaban yang terpisah karena jika Anda memecahkan versi Pthyon3, maka Anda juga memecahkan versi Pyth, bahkan tanpa mengetahui Pyth.
Menjawab:
Penjelasan kode:
Tiba di solusinya, dengan python:
sumber
literal_eval()
dalamast
modul dapat digunakan untuk mengevaluasi ekspresi dengan aman, sehingga masalahprint(
kode injeksi tidak akan berfungsi. Ini mungkin tidak relevan di sini, tapi saya pikir saya akan menyebutkannya.Hello, World!
? Belum retak, tapi sepertinya itu kehilangan tanda koma (hanya 12 iterasi yang tergabung dalam loop)TeX - 38 bytes Cracked (ish)
Ini patut dicoba, karena saya tidak bisa membayangkan siapa pun di situs tentang menulis potongan kode pendek akan tahu TeX:
Untuk menjalankannya, Anda harus mendapatkan beberapa bentuk TeX yang memungkinkan mode interaktif. Simpan ini ke file, dan jalankan TeX (atau pdfTeX, XeTeX, dll.) Di atasnya.
Sunting: Saya sedang mempertimbangkan ini semi-retak. Solusi yang dimaksud menggunakan input dari stdin, tetapi input TeXnically dari cara program dipanggil valid. Saya akan menambahkan jawaban TeX yang lebih licik jika seseorang mendapatkan metode yang dimaksud.
Inilah solusi yang dimaksud:
Itu mungkin curang, tetapi harus tetap dalam aturan permainan.
sumber
tex \ Hello, world!\bye
(23 byte)?texnically
ya ampun.> <> , 538 byte, Retak karena rexroni
Cobalah secara online , atau Anda mungkin ingin menggunakan taman bermain ikan .
Tiga baris pertama membaca dalam string dari STDIN dan menggunakan kode mod mod 26 sebagai koordinat untuk menempatkan karakter "
>/v>v\v</>
" ke dalam labirin di bawah ini. Solusi yang dimaksud adalah string 20 karakter yang terbuat dari huruf A – Z saja (walaupun Anda diperbolehkan menggunakan apa pun yang Anda inginkan, tentu saja).Larutan:
sumber
Oktaf, 59 byte, Retak
Ini bekerja di Octave 4.2.0. Saya tidak dapat menjamin kompatibilitas dengan semua versi.
Catatan: Ini tidak mencetak spasi tambahan atau baris baru. Seperti inilah tampilannya:
Ini pada dasarnya mengatakan: "Cetak string input, kecuali inputnya adalah 'Hello, World!', Dalam hal ini seharusnya tidak mencetak apa-apa (atau karakter nol).
sumber
%c
berarti tali atau arang ... mungkin Anda sedang sesuatu bersembunyi? Juga*~
membuat saya agak curiga ...\n
. Saya pikir teks pertanyaan mengatakan " opsional membuntuti baris baru ".CJam , 7 byte ( retak )
Cobalah online!
Masukan yang dimaksudkan:
sumber
MATL , 6 byte. Retak
Cobalah online!
sumber
['Hello,' 1 'World!']
. Kenapa selingkuh? :-( Dok / bantuan untukD
mengatakan Sebagian besar karakter input di bawah 32 digantikan oleh spasiMeledak , 23 byte, Retak
Lebih banyak datang, ini baru awal> :)
Cobalah online!
Penjelasan Penjelajah
Ada empat penjelajah dalam program ini. Saya tidak sepenuhnya yakin bahwa wait (
>
) berfungsi dengan benar.Baca input pengguna (
?
), tulis dan rentangkan kaset (@
) ke bawah (_
).Untuk 4 ticks (
4
), modifikasi kaset (&
) ke bawah (_
), lompati 5 (5
), dengan mengurangi (-
) 19 (j
).Untuk 16 ticks (
f
), modifikasi tape (&
) ke atas (^
) dalam gelombang (~
), bergantian tidak mempengaruhi, +13, tidak mempengaruhi, dan -13 (c
).Untuk 6 ticks (
6
), modifikasi tape (&
) di kedua arah (|
), menurun (\
) oleh 4 (4
) setiap kali, dan melompat dengan 7 (7
). Decreasing artinya mengurangi 4 pertama kali, 8 kali kedua, dll.sumber
JavaScript (ES6),
173169163150151148143 byte ( Retak )Mari kita memiliki sesuatu yang sama sekali berbeda ... dan benar - benar jahat .
Pemakaian:
f(something) // returns 'Hello, World!'
Cobalah online!
sumber
C # (.NET Core) ,
130152 byte, CRACKED22 byte, saya lupa tentang mengikuti baris baru ... Program bekerja sama seperti sebelumnya, baris baru ditambahkan ke output apa pun.
Cobalah online!
Hitungan byte juga termasuk
Sebagai permulaan saya pergi untuk sesuatu yang tidak terlalu gila. Itu dapat memiliki beberapa jawaban.
Celah "resmi":
sumber
tcc, 89 bytes, cracked by Dennis
This is particularly evil due to tcc's dynamic resolution. Lots of functions are predeclared and trying to overwrite them simply doesn't work.
sumber
puts
and I thought that outputs.)mprotect
is being a butt.Bash, 62 bytes, (cracked by ArchDelacy)
No alphanumerics or forward slashes. You should have fun with this one.
Try it online!
sumber
brainfuck, 7 bytes cracked
Try it online!
Good luck. (doesn't work with every BF interpreter
sumber
JavaScript (ES6), 102 bytes (Cracked)
The previous version has a massive cheese. Let's try this again...
Try it online!
Author solution:
Usage:
sumber
Cubically, 159 bytes (Cracked)
This will be pretty easy to those who are comfortable with Cubically. Try it online!
sumber
6502 machine code (C64),
5153 bytes (Cracked)Online demo
Usage:
SYS49152,[x],[n]
, wherex
is a 16bit unsigned integer andn
is an 8bit unsigned integer.Invoked with wrong values, a crash is very likely.
For cracking, you might want to run it in a local installation of vice, so here's a BASIC loader to paste into the emulator (
RUN
it to place the program at$C000
):Update: Added two bytes for the load address to make this an executable C64
PRG
file in response to the discussion on metasumber
b7eb
callsaefd
, but only after callingad8a
(parse number as float (!)(wtf)(MS)) andb7f7
(convert that float to 16bit unsigned int) -- so I have to first callaefd
myself for consuming the first comma.Python 2, 63 bytes, cracked
Just to get the ball rolling...
Try it online!
sumber
Pyth, 18 bytes (Cracked)
This is extremely easy, and anyone that knows Pyth would crack it in the blink of an eye, but still... Note that you must put the String between quotes.
Try it online!
sumber
JavaScript (Browser only), 95 bytes (Cracked)
Not too hard. Has multiple solutions.
sumber
Jelly, 11 bytes (cracked)
Try it online!
Intended input:
sumber
05AB1E, 20 bytes (Cracked)
Shouldn't be too hard though:
Uses the 05AB1E encoding. Try it online!
sumber
Ly, 12 bytes (Cracked)
Try it online!
I don't expect this to last very long, but oh well.It didn't last very long.sumber
Python3, 192 bytes Cracked I guess
The text it reads is the first program argument:
python3 hw.py '[1,2,3]'
Don't be lame and try to put a
print("Hello World!")
statement as the argument... it prints an error afterwards anyways (at least on the command line), so I don't think that should count. (Edit: somebody did exactly that)sumber
Jelly,
2021 bytes (Cracked)+1 byte - "...and a trailing newline"
Try it online!
There are, in fact, infinite solutions.
sumber
⁸
which is for some reason missing from the TIO link, so I hope I didn't confuse myself.Lua 5.1, 44 bytes (Cracked)
Note that Lua 5.1 is a different language than Lua 5.2 or Lua 5.3. "Try it online" doesn't have Lua 5.1. You can check your Lua version by running
print(_VERSION)
. (There should be a solution in any implementation that uses PUC-Rio's Lua 5.1 core.)As a test harness, you can use something like this:
Test harness on repl.it
sumber
C (GCC on TIO), 84 bytes golfed (Cracked)
Here's an ungolfed version that works too:
sumber
JavaScript (ES6), 92 bytes (Cracked)
This simple string copy function seems to be really resisting you to copy any strings resembling
Hello, World!
...Try it online!
sumber
Röda, 71 bytes (Cracked)
Try it online!
Usage:
push(/* input */) | f()
(where f is a variable that holds the function above).sumber
JavaScript (ES6),
135119 bytes, (Cracked)Try it online!
sumber
Ruby, 88 bytes, Cracked by w0lf
Try it online!
sumber
JavaScript (ES6) 107 Bytes [Thanks Евгений Новиков] (Cracked)
Call on the
i
function using a string.The
console.log...
is for testing purposes.Try It Online!
sumber
var
, (2)()
from one arrow-function argument, (3) replacereturn
toeval("")
(4) delete;
at the end. 110 bytes solution: pastebin.com/qwdm7fT7 Good luck