<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
jest (domyślnie przyznam ci) ograniczony do [1,6], więc 100 nie ma.Odpowiedzi:
Pyth, 23 bajty
Naprawdę proste. Losowa liczba iteracji 0–5 wyświetla kliknięcie i żądanie linii wprowadzania, a następnie huk na końcu.
źródło
*BANG!*
, a nieBANG
Rubinowy, 51 bajtów
Nie golfowany:
lub
Unngolfing zostawił czytelnikom. Nie takie trudne
$><<
wputs
zamian."*click*"
są w porządku (to, co jest wymagane, jest wydrukowane na końcu), zastępując$><<
jep
. Nie byłem pewien, czy nadal będzie to zgodne z zasadami.6864 bajtów(inne podejście)
Nie zastanawiałem się długo nad algorytmem (może być jeszcze bardziej zwarty, ale nie tak wyraźny), ale naprawdę podoba mi się model w nim:
0
jest kulą. Inne liczby nie są.find
znajduje pierwszą zwracaną wartość, dla której blok nie jestfalse
aninil
.||
-wyrażenie jest domyślnie zwracane z bloku. Jest to zwarcie: zwraca pierwszy argument (o ile nie jest tonil
anifalse
) lub drugi (inaczej). Zwraca więctrue
(jeślix<1
lub, wyraźniej, ale dłużejx == 0
) lub zwraca wartośćputs
, podczas gdy ...puts
zawsze wracanil
. Tak.gets
żąda wprowadzenia danych. EnterWystarczy uderzenie .źródło
JavaScript, 64 bajty
Wyjaśnienie
Aby pociągnąć za spust, wpisz dowolny tekst w monicie. Wpisz nic lub kliknij przycisk Anuluj, aby zakończyć.
źródło
"*Bang!*"
nie jest większa niż 7. AleNaN
nie jest mniejsza niż 7.Lua,
8275 bajtówDość długo, ale w lua jest dużo gadatliwości.
źródło
LabVIEW, 46 LabVIEW Prymitywy
Tworzy tablicę zer i jeden 1, ma pętlę czekającą na kliknięcia i wyświetla ciąg znaków. Początkowo mówi BANG, ponieważ zapomniałem zresetować wskaźnik przed jego uruchomieniem.
Pamiętaj też, że jest to gif, jeśli jeśli nie można go odtworzyć / załadować, otwórz stronę ponownie.
źródło
"*click*"
wypadek gdyby pistolet nie strzelał. Ponadto, czy generuje,"bang"
czy"*BANG!*"
?Pyth,
313028 bajtówNiemal na pewno można go poprawić. Wprowadź dowolną liczbę, aby pociągnąć za spust, puste wejście, aby zakończyć wcześniej (z błędem).
Wyjaśnienie:
źródło
"
.FN<any>
wciąż całkowicie identycznegoV<any>
, co prawdopodobnie należy zmienić, aby nie mylić nowych golfistów ...: P.?
. Nie ma potrzebyelse
.Poważnie,
2725 bajtówBrak linku online, ponieważ nie ma możliwości zrobienia monitu za pomocą wprowadzania potokowego. Program może być CTRL-C'd w każdej chwili do
kurczaka zwypowiedzenia.Wyjaśnienie:
źródło
PHP, 52 bajty
Wymaga
-F
opcji wiersza poleceń, liczonej jako trzy. Spust jest pociągany przez naciśnięcie Enter.Ponieważ
-F
dosłownie uruchamia skrypt ponownie dla każdego wejścia (nie żartuję),die
i tym podobne nie zostaną zakończone, więc zamiast tego wychodzimy z powodu pomijanego błędu wykonania@\n
.Przykładowe użycie
źródło
Perl 5, 43 bajtów
Uruchom z
perl -p
. Stabilny wariant pocisku - tj. Pozycja pocisku jest ustalana tylko raz na samym początku.źródło
//=
. Nie zapomnij również doliczyć-p
swojego wyniku .C,
1107472 bajtyDzięki Dennisowi za pozbycie się dołączeń i znacznie mniej bajtów.
źródło
Cukierki , 36 bajtów
Około połowa programu to tekst do wydrukowania :(
długa forma:
źródło
Python 3, 95 bajtów
Również moja pierwsza próba golfa, także w Pythonie 3. Przysięgam, że Bruce i nie jestem tą samą osobą.
Nie golfowany:
Wygenerować losową liczbę od 0 do 5 włącznie, wydrukować kliknij że wiele razy, a następnie wydrukować huk . Naciśnij enter / return, aby pociągnąć za spust.
źródło
from random import*
PlatyPar ,
2625 bajtówWyjaśnienie:
Wypróbuj online !
źródło
Emacs Lisp,
9489 bajtówNie golfowany:
źródło
R,
868077 bajtówJak zwykle, R ma niesamowite funkcje do kodowania gry w golfa, ale nazwy funkcji looooooong.
źródło
Python 2,
10810410210098 bajtówMoja pierwsza próba gry w golfa:
Może powinienem dodać, że program nie kończy się poprawnie, gdy przegrasz, po prostu zgłasza wyjątek (co powoduje zakończenie):
źródło
a=shuffle([1,0,0,0,0,0])
wc
go używam , daje mi 109 za dużo, więc to prawda. Jak liczyćPerl 5, 40 bajtów
Uruchom bez opcji wiersza poleceń, spust jest pociągany przez naciśnięcie Enter.
źródło
Python, 81 bajtów
zainspirowany rozwiązaniami Ruby (51) i Python
źródło
Common Lisp, 109
Niezbyt konkurencyjny, ale lubię okrągłe listy:
źródło
Perl 5, 43 bajtów
42 bajty +
-p
opcja wiersza poleceń. Naciśnij,enter
aby uruchomić.Dzięki Dom Hastings za pomoc! Oryginalna odpowiedź miała 67 bajtów:
źródło
-p
polegał na tym, że program kończy działanie przed wywołaniem ostatniegoprint
polecenia, nie jestem pewien, dlaczego. Próbowałem Poza tym niesamowite sugestie, dzięki! Moja wiedza wciąż rośnie ...0|
sztuczka nie działała zgodnie z oczekiwaniami, ale ogoliłem z niej kilka bajtów, instrukcję print i ostatnią instrukcję, jak zasugerowałeś. Jak to teraz wygląda?MATL , 41 bajtów
Aby pociągnąć za spust, wprowadź niepusty ciąg (np.
'try'
).Aby zakończyć, wprowadź pusty ciąg
Przykłady
W tym przypadku spust został pociągnięty raz i ... pech:
W tym przypadku użytkownik zatrzymał się (zwróć uwagę na ostatnie puste wejście) po dwóch szczęśliwych pociągnięciach:
Wyjaśnienie
źródło
Perl 6 ,
5853 bajtówNaciśnij enter, aby pociągnąć za spust, lub ctrl + c, aby go odłożyć.
źródło
Python 2,
8884 bajtówTo rozwiązanie jest inspirowane już podanymi rozwiązaniami w języku Python 3. Wybrałem python 2, aby usunąć nawias drukowany, mimo że zmienia to zachowanie input ().
źródło
Rubin, 45 + 1 = 46
Nie tak sprytny jak strona D, ale nieco krótszy.
Z flagą wiersza polecenia
p
uruchomUżytkownik może pociągnąć za spust z powrotem i wyjść z klawiszem Control-c.
p
powoduje, że program działa w pętli, odczytuje wiersze ze STDIN i wyświetla$_
. Za każdym razem, gdy działa, zwiększa się$.
. Tak więc przy pierwszym uruchomieniu wybiera losową liczbę całkowitą dodatnią mniejszą niż 6, następnie 5, a następnie 4 itd. Przy pierwszym 0, wyprowadzamy dane ręcznie i kończymy, do tego czasu wyprowadzamy dane niejawnie.(a teraz zauważam, że już istnieje bardzo podobny Perl. No cóż.)
źródło
Perl 5,
695149 bajtówPrawdopodobnie jest więcej możliwości gry w golfa, przyjrzę się temu.
Zmiany:
$l
i niektóre średniki, oraz 10 bajtów, zmieniając<STDIN>
na<>
źródło
map{<>;print"*click*"}1..rand 6;<>;print"*BANG!*"
VBA, 126 bajtów
Wersja golfowa dla minimalnej ilości bajtów
Zabawna wersja, która sprawia, że przyciski stają się bardziej przejrzyste w celu zwiększenia akceptacji użytkownika.
Trochę zabawy z niestandardowymi formularzami i możesz zrobić fajną grę w VBA.
źródło
APL, 39/65 bajtów
Dość prosta odpowiedź.
źródło
C, 180 bajtów
Moja pierwsza próba gry w golfa kodowego, prawdopodobnie jest dużo miejsca na ulepszenia :)
źródło
Julia, 71 bajtów
Naciśnij, Enteraby zwolnić, lub Ctrl+, Caby wyjść. Ten ostatni kończy się na
InterruptException
.Nie golfowany:
źródło
Lua, 73 bajty
źródło