<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
está (implícitamente, lo concederé) limitado a [1,6], por lo que 100 está fuera.Respuestas:
Pyth, 23 bytes
Muy simple Un número aleatorio de iteraciones 0 - 5 muestra el clic y solicita una línea de entrada, seguida de una explosión al final.
fuente
*BANG!*
, noBANG
Ruby, 51 bytes
Sin golf:
o
Ungolfing se fue para los lectores. No es tan dificil
$><<
comoputs
reemplazo."*click*"
están bien (lo que se requiere se imprime al final), reemplazándolo$><<
porp
. No estaba seguro de si esto seguiría las reglas.6864 bytes(otro enfoque)
No pensé mucho en el algoritmo (posiblemente puede ser aún más compacto, pero no tan claro), pero realmente me gusta el modelo que contiene:
0
Es una bala. Otros números no lo son.find
encuentra un primer valor de retorno para el cual el bloque no esfalse
ninil
.||
-expresión se devuelve implícitamente desde el bloque. Es un cortocircuito: devuelve su primer operando (a menos que seanil
ofalse
) o un segundo (de lo contrario). Por lo tanto, devuelvetrue
(six<1
o, más claro pero más largox == 0
) o el valor de retorno deputs
, mientras ...puts
siempre vuelvenil
. Sí.gets
solicita entrada. Simplemente golpearEnter suficiente.fuente
JavaScript, 64 bytes
Explicación
Para apretar el gatillo, ingrese cualquier texto en la solicitud. No ingrese nada o haga clic en cancelar para finalizar.
fuente
"*Bang!*"
no es mayor que 7. PeroNaN
no es menor que 7.Lua,
8275 bytesPretty long, but there's lot of verbose in lua.
fuente
LabVIEW, 46 LabVIEW Primitives
Creates an Array of 0s and one 1, has a loop to wait for clicks and outputs the string. It initially says BANG becuase i forgot to reset the indicator before starting it.
Also note that this is a gif, if if does not play/load for you please reopen the page.
fuente
"*click*"
in case the gun didn't shoot. Also, does it output"bang"
or"*BANG!*"
?Pyth,
313028 bytesAlmost certainly can be improved. Input any number to pull the trigger, blank input to terminate early (with an error).
Explanation:
fuente
"
.FN<any>
is still entirely identical toV<any>
, that should probably be changed to not confuse new golfers... :P.?
. There is no need for anelse
.En serio,
2725 bytesNo hay enlace en línea porque no hay forma de hacer un aviso con entrada entubada. El programa puede ser CTRL-C'D en cualquier momento para
salir de polloterminate.Explicación:
fuente
PHP, 52 bytes
Requiere la
-F
opción de línea de comando, contada como tres. El gatillo se aprieta presionandoEnter.Porque
-F
literalmente ejecuta el script nuevamente para cada entrada (no es broma),die
y similares no terminarán realmente, por lo que salimos por un error de tiempo de ejecución suprimido@\n
.Uso de muestra
fuente
Perl 5, 43 bytes
Corre con
perl -p
. Variante de viñeta estable, es decir, la posición de la viñeta se decide solo una vez en el comienzo.fuente
//=
. Además, no olvide contar-p
en su puntaje .C,
1107472 bytesGracias a Dennis por deshacerse de las inclusiones y muchos menos bytes.
fuente
Caramelo , 36 bytes
Aproximadamente la mitad del programa es el texto a imprimir :(
forma larga:
fuente
Python 3, 95 bytes
También mi primer intento de golf, también en Python 3. Juro que Bruce y yo no somos la misma persona.
Sin golf:
Genere un número aleatorio entre 0 y 5 inclusive, imprima clic tantas veces, luego imprima explosión . Presione enter / return para apretar el gatillo.
fuente
from random import*
PlatyPar ,
2625 bytesExplicación:
Pruébalo en línea !
fuente
Emacs Lisp,
9489 bytesSin golf:
fuente
R,
868077 bytesComo de costumbre, R tiene características increíbles para codificar el golf, pero nombres muuuuuuuuuuuuuuuuuu como largos.
fuente
Python 2,
10810410210098 bytesMi primer intento de jugar golf:
Tal vez debería agregar que el programa no finaliza correctamente cuando pierde, solo arroja una excepción (que resulta en la finalización):
fuente
a=shuffle([1,0,0,0,0,0])
wc
me da 109 cuál demasiado, así que está bien. ¿Cómo cuentas?Perl 5, 40 bytes
Correr sin opciones de línea de comandos, se aprieta el gatillo presionando Enter.
fuente
Python, 81 bytes
inspirado en las soluciones Ruby (51) y Python
fuente
Lisp común, 109
No es muy competitivo, pero me gustan las listas circulares:
fuente
Perl 5, 43 bytes
42 bytes +
-p
opción de línea de comando. Solo presioneenter
para disparar.¡Gracias a Dom Hastings por su ayuda! La respuesta original fue de 67 bytes:
fuente
-p
era que saldría antes de llamar a la últimaprint
declaración, sin saber por qué. Lo he intentado Aparte de eso, sugerencias increíbles, ¡gracias! Mi conocimiento continúa creciendo ...0|
truco no funcionó como se esperaba, pero eliminé algunos bytes, la declaración impresa y la última declaración como sugirió. ¿Cómo se ve ahora?MATL , 41 bytes
Para apretar el gatillo, ingrese una cadena no vacía (como
'try'
).Para terminar, ingrese una cadena vacía
Ejemplos
En este caso, el gatillo se apretó una vez y ... mala suerte:
En este caso, el usuario se detuvo (tenga en cuenta la entrada vacía final) después de dos intentos de suerte:
Explicación
fuente
Perl 6 ,
5853 bytesPresione enter para apretar el gatillo, o ctrl + c para soltarlo.
fuente
Pitón 2,
8884 bytesEsta solución está inspirada en las soluciones de Python 3 ya dadas. Elegí python 2 para eliminar el paréntesis de impresión a pesar de que esto cambia el comportamiento de input ().
fuente
Rubí, 45 + 1 = 46
No es tan inteligente como el lado D pero es un poco más corto.
Con el indicador de línea de comando
p
, ejecuteEl usuario puede apretar el gatillo con retorno y salir con control-c.
p
hace que el programa se ejecute en un bucle, leyendo líneas de STDIN y generando resultados$_
. Cada vez que se ejecuta, se incrementa$.
. Entonces, en la primera ejecución, elige un entero positivo aleatorio menor que 6, luego 5, luego 4, y así sucesivamente. En el primer 0, salimos manualmente y salimos, hasta entonces salimos implícitamente.(y ahora me doy cuenta de que ya hay un Perl muy similar. Oh, bueno.)
fuente
Perl 5,
695149 bytesProbablemente haya más potencial de golf, lo investigaré.
Cambios:
$l
y algunos puntos y comas, y 10 bytes al cambiar<STDIN>
a<>
fuente
map{<>;print"*click*"}1..rand 6;<>;print"*BANG!*"
VBA, 126 bytes
Versión de golf para bytes mínimos
Versión divertida que hace que los botones sean más claros para una mayor aceptación del usuario.
Un poco de diversión con formularios personalizados y podrías hacer un bonito juego elegante en VBA.
fuente
APL, 39/65 bytes
Respuesta bastante directa.
fuente
C, 180 bytes
Mi primer intento en el código de golf, probablemente hay mucho margen de mejora :)
fuente
Julia, 71 bytes
Presione Enterpara disparar o Ctrl+C para salir. Este último termina con un
InterruptException
.Sin golf:
fuente
Lua, 73 bytes
fuente