<style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } table td { padding: 5px; }</style><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="language-list"> <h2>Shortest Solution by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr> </thead> <tbody id="languages"> </tbody> </table> </div> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr> </thead> <tbody id="answers"> </tbody> </table> </div> <table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr> </tbody> </table><script>var QUESTION_ID = 66763; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 38512; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function commentUrl(index, answers) { return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER; } function getAnswers() { jQuery.ajax({ url: answersUrl(answer_page++), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { answers.push.apply(answers, data.items); answers_hash = []; answer_ids = []; data.items.forEach(function(a) { a.comments = []; var id = +a.share_link.match(/\d+/); answer_ids.push(id); answers_hash[id] = a; }); if (!data.has_more) more_answers = false; comment_page = 1; getComments(); } }); } function getComments() { jQuery.ajax({ url: commentUrl(comment_page++, answer_ids), method: "get", dataType: "jsonp", crossDomain: true, success: function (data) { data.items.forEach(function(c) { if (c.owner.user_id === OVERRIDE_USER) answers_hash[c.post_id].comments.push(c); }); if (data.has_more) getComments(); else if (more_answers) getAnswers(); else process(); } }); } getAnswers(); var SCORE_REG = /<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/; var OVERRIDE_REG = /^Override\s*header:\s*/i; function getAuthorName(a) { return a.owner.display_name; } function process() { var valid = []; answers.forEach(function(a) { var body = a.body; a.comments.forEach(function(c) { if(OVERRIDE_REG.test(c.body)) body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>'; }); var match = body.match(SCORE_REG); if (match) valid.push({ user: getAuthorName(a), size: +match[2], language: match[1], link: a.share_link, }); else console.log(body); }); valid.sort(function (a, b) { var aB = a.size, bB = b.size; return aB - bB }); var languages = {}; var place = 1; var lastSize = null; var lastPlace = 1; valid.forEach(function (a) { if (a.size != lastSize) lastPlace = place; lastSize = a.size; ++place; var answer = jQuery("#answer-template").html(); answer = answer.replace("{{PLACE}}", lastPlace + ".") .replace("{{NAME}}", a.user) .replace("{{LANGUAGE}}", a.language) .replace("{{SIZE}}", a.size) .replace("{{LINK}}", a.link); answer = jQuery(answer); jQuery("#answers").append(answer); var lang = a.language; lang = jQuery('<a>'+lang+'</a>').text(); languages[lang] = languages[lang] || {lang: a.language, lang_raw: lang.toLowerCase(), user: a.user, size: a.size, link: a.link}; }); var langs = []; for (var lang in languages) if (languages.hasOwnProperty(lang)) langs.push(languages[lang]); langs.sort(function (a, b) { if (a.lang_raw > b.lang_raw) return 1; if (a.lang_raw < b.lang_raw) return -1; return 0; }); for (var i = 0; i < langs.length; ++i) { var language = jQuery("#language-template").html(); var lang = langs[i]; language = language.replace("{{LANGUAGE}}", lang.lang) .replace("{{NAME}}", lang.user) .replace("{{SIZE}}", lang.size) .replace("{{LINK}}", lang.link); language = jQuery(language); jQuery("#languages").append(language); } }</script>
n
(secara implisit, saya akan memberi Anda) terbatas pada [1,6], jadi 100 keluar.Jawaban:
Pyth, 23 byte
Sangat sederhana. Sejumlah acak iterasi 0 - 5 tampilan klik dan minta sederetan input, diikuti dengan bang di bagian akhir.
sumber
*BANG!*
, bukanBANG
Ruby, 51 byte
Tidak Disatukan:
atau
Tidak ada yang tersisa untuk para pembaca. Tidak sesulit itu
$><<
sebagaiputs
penggantinya."*click*"
baik-baik saja (apa yang diperlukan dicetak pada akhirnya), dengan mengganti$><<
denganp
. Saya tidak yakin apakah ini akan tetap mengikuti aturan.6864 byte(pendekatan lain)
Saya tidak terlalu memikirkan algoritma (mungkin bisa lebih ringkas, tapi tidak begitu jelas), tapi saya sangat suka model di dalamnya:
0
adalah sebuah peluru. Nomor lainnya tidak.find
menemukan nilai pengembalian pertama yang bloknya jugafalse
tidaknil
.||
-ekspresi secara implisit dikembalikan dari blok. Ini korsleting: mengembalikan operan pertamanya (kecuali jika itunil
ataufalse
) atau yang kedua (jika tidak). Jadi itu bisa mengembalikantrue
(jikax<1
atau, lebih jelas tapi lebih lamax == 0
) atau nilai pengembalianputs
, saat ...puts
selalu kembalinil
. Ya.gets
meminta input. Cukup memukul saja Enter.sumber
JavaScript, 64 byte
Penjelasan
Untuk menarik pelatuk, masukkan teks apa saja ke dalam prompt. Masukkan apa pun atau klik batal untuk mengakhiri.
sumber
"*Bang!*"
tidak lebih besar dari 7. TetapiNaN
tidak lebih kecil dari 7.Lua,
8275 byteCukup panjang, tapi ada banyak kata dalam lua.
sumber
LabVIEW, 46 Primview LabVIEW
Membuat Array 0s dan 1, memiliki loop untuk menunggu klik dan output string. Awalnya katanya BANG karena saya lupa mengatur ulang indikator sebelum memulainya.
Perhatikan juga bahwa ini adalah gif, jika jika tidak diputar / muat untuk Anda silakan buka kembali halaman tersebut.
sumber
"*click*"
kalau-kalau pistol tidak menembak. Juga, apakah itu output"bang"
atau"*BANG!*"
?Pyth,
313028 byteHampir dipastikan bisa ditingkatkan. Masukkan nomor apa saja untuk menarik pelatuk, kosongkan input untuk mengakhiri lebih awal (dengan kesalahan).
Penjelasan:
sumber
"
.FN<any>
masih sepenuhnya identik denganV<any>
, yang mungkin harus diubah untuk tidak membingungkan pegolf baru ...: P.?
. Tidak perlu untukelse
.Serius,
2725 byteTidak ada tautan online karena tidak ada cara untuk melakukan prompt dengan input yang disalurkan. Program ini dapat CTRL-C'd setiap saat untuk
ayam keluarmengakhiri.Penjelasan:
sumber
PHP, 52 byte
Membutuhkan
-F
opsi baris perintah, dihitung sebagai tiga. Pemicu ditarik dengan menekan Enter.Karena
-F
secara harfiah menjalankan skrip lagi untuk setiap input (I kid you not),die
dan sejenisnya tidak akan benar-benar berakhir, jadi kami keluar melalui kesalahan runtime yang ditekan sebagai gantinya@\n
,.Contoh Penggunaan
sumber
Perl 5, 43 byte
Jalankan dengan
perl -p
. Varian peluru stabil - yaitu posisi peluru diputuskan hanya sekali di awal.sumber
//=
. Juga, jangan lupa untuk menghitung-p
skor Anda .C,
1107472 byteTerima kasih kepada Dennis karena telah menyingkirkan menyertakan dan jauh lebih sedikit byte.
sumber
Permen , 36 byte
Sekitar setengah dari program adalah teks untuk dicetak :(
bentuk panjang:
sumber
Python 3, 95 byte
Juga upaya golf pertama saya, juga di Python 3. Saya bersumpah Bruce dan saya bukan orang yang sama.
Tidak Disatukan:
Hasilkan angka acak antara 0 dan 5 inklusif, cetak klik berkali-kali, lalu cetak bang . Tekan enter / kembali untuk menarik pelatuk.
sumber
from random import*
PlatyPar ,
2625 bytePenjelasan:
Cobalah online !
sumber
Emacs Lisp,
9489 byteTidak Disatukan:
sumber
R,
868077 byteSeperti biasa, R memiliki fitur luar biasa untuk kode golf tetapi nama fungsi looooooong.
sumber
Python 2,
10810410210098 byteUpaya pertama saya bermain golf:
Mungkin saya harus menambahkan bahwa program tidak berhenti dengan benar ketika Anda kalah, itu hanya melempar pengecualian (yang menghasilkan penghentian):
sumber
a=shuffle([1,0,0,0,0,0])
wc
memberi saya 109 mana yang terlalu banyak, jadi itu benar. Bagaimana Anda menghitung?Perl 5, 40 byte
Jalankan tanpa opsi baris perintah, pemicu ditarik dengan menekan Enter.
sumber
Python, 81 Bytes
terinspirasi oleh solusi Ruby (51) dan Python
sumber
Common Lisp, 109
Tidak terlalu kompetitif, tapi saya suka daftar bundar:
sumber
Perl 5, 43 byte
42 byte +
-p
opsi baris perintah. Cukup tekanenter
untuk memicu.Terima kasih kepada Dom Hastings atas bantuannya! Jawaban asli adalah 67 byte:
sumber
-p
adalah bahwa ia akan keluar sebelum memanggilprint
pernyataan terakhir , tidak yakin mengapa. Saya sudah mencobanya. Selain itu, saran yang luar biasa, terima kasih! Pengetahuan saya terus bertambah ...0|
trik tidak berfungsi seperti yang diharapkan, tapi saya mencukur beberapa byte darinya, pernyataan cetak dan pernyataan terakhir seperti yang Anda sarankan. Bagaimana tampilannya sekarang?MATL , 41 byte
Untuk menarik pelatuk, masukkan string yang tidak kosong (seperti
'try'
).Untuk mengakhiri, masukkan string kosong
Contohnya
Dalam hal ini pelatuk ditarik sekali dan ... nasib buruk:
Dalam hal ini pengguna berhenti (perhatikan input kosong terakhir) setelah dua lucky lucky:
Penjelasan
sumber
Perl 6 ,
5853 byteTekan enter untuk menarik pelatuknya, atau ctrl + c untuk meletakkannya.
sumber
Python 2,
8884 byteSolusi ini terinspirasi oleh solusi python 3 yang sudah diberikan. Saya memilih python 2 untuk menghapus tanda kurung cetak meskipun ini mengubah perilaku input ().
sumber
Ruby, 45 + 1 = 46
Tidak sepintar itu sisi-D tetapi sedikit lebih pendek.
Dengan bendera baris perintah
p
, jalankanPengguna dapat menarik pelatuk dengan kembali dan pergi dengan kontrol-c.
p
menyebabkan program berjalan dalam satu lingkaran, membaca garis-garis dari STDIN dan mengeluarkan$_
. Setiap kali berjalan, itu bertambah$.
. Jadi pada jalankan pertama, ia memilih bilangan bulat positif acak kurang dari 6, kemudian 5, lalu 4, dan seterusnya. Pada 0 pertama, kami output secara manual dan keluar, sampai saat itu kami output secara implisit.(Dan sekarang saya perhatikan bahwa sudah ada Perl yang sangat mirip. Oh well.)
sumber
Perl 5,
695149 byteMungkin ada beberapa potensi golf lagi, saya akan melihat ini.
Perubahan:
$l
dan beberapa titik koma, dan 10 byte dengan mengubah<STDIN>
ke<>
sumber
map{<>;print"*click*"}1..rand 6;<>;print"*BANG!*"
VBA, 126 byte
Versi Golf untuk Minimal Bytes
Versi Menyenangkan yang Menjadikan Tombol Lebih Jelas untuk Peningkatan Penerimaan Pengguna.
Bersenang-senang dengan Formulir Kustom dan Anda bisa membuat Game yang cukup apik di VBA.
sumber
APL, 39/65 byte
Jawaban yang cukup mudah.
sumber
C, 180 Bytes
Upaya pertama saya di kode golf, mungkin ada banyak ruang untuk perbaikan :)
sumber
Julia, 71 byte
Tekan Enteruntuk memecat atau Ctrl+ Cuntuk keluar. Yang terakhir berakhir dengan
InterruptException
.Tidak Disatukan:
sumber
Lua, 73 byte
sumber