En este desafío, juntos crearemos una búsqueda de palabras que contenga muchos programas en diferentes idiomas.
Comenzamos con una cuadrícula de 60 por 25 espacios en blanco ( ·
), algunos de los cuales son reemplazados por los personajes de un programa Ruby.
Para responder, elija un idioma que aún no se haya utilizado. Usando el idioma elegido, escriba un programa que lea un carácter, token, línea o todas las entradas de la consola e imprímalo . Luego, inserte su programa en la búsqueda de palabras.
Por ejemplo, suponga que elige Python 3 para su respuesta y escribe el programa print(input())
. Ahora tiene que insertar ese programa en la cuadrícula.
Si la cuadrícula antes de su respuesta se ve así:
···a·24··········
··z····t·········
Luego, puede poner su programa en la segunda línea, superponiéndose con el existente t
:
···a·24··········
··zprint(input())
Tenga en cuenta que puede colocar su programa en cualquier dirección: hacia adelante, hacia atrás, hacia arriba, hacia abajo o en diagonal, siempre que esté en línea recta.
Pero qué pasa si la cuadrícula existente se ve así:
···a·24··········
··z····q·········
No hay forma de encajar print(input())
aquí sin cambiar los caracteres existentes, lo cual está prohibido. En cambio, puede cambiar el programa:
print(
input())
Este programa de dos líneas encaja perfectamente:
···a·24·print(···
··z····q input())
Aquí reemplaza un espacio en blanco ( ·
) con un espacio (
). Sin embargo, un espacio es como cualquier otro personaje y no se puede sobrescribir en futuros programas.
Al igual que una línea, un programa de varias líneas se puede colocar en cualquier dirección. Por ejemplo, en una cuadrícula más grande, puede hacer lo siguiente, girando el programa 135 ° en sentido horario.
··········
········ ·
·······i·p
······n·r·
·····p·i··
····u·n···
···t·t····
··(·(·····
·)········
)·········
Tanteo
Su puntaje para cada respuesta es treinta dividido por el número de caracteres agregados. No cuente los personajes que ya existían en la cuadrícula, incluso si los usa usted mismo.
Su puntaje total es la suma de los puntajes de todas sus respuestas, multiplicado por el número de respuestas. La puntuación más alta gana.
Reglas
- Cada respuesta debe estar escrita en un idioma diferente. Los idiomas que difieren solo en el número de versión (p. Ej., Python 2 y Python 3) se consideran iguales.
- Cada respuesta debe basarse en la respuesta válida más reciente. Es decir, tome la cuadrícula de la respuesta más reciente, e inserte su programa en ella.
- Para insertar su programa, reemplace al menos uno de los espacios en blanco (
·
) con los caracteres que elija. Puede usar caracteres existentes de la cuadrícula en su respuesta, pero no puede cambiar ni mover ninguno de ellos.
- No puede insertar más de 500 caracteres en total, en todas sus respuestas.
- Todos los caracteres que inserte deben ser parte de su programa.
- Su programa puede consistir solo en ASCII imprimible y líneas nuevas, pero puede que no haya dos o más líneas consecutivas consecutivas.
- Las líneas nuevas no cuentan para su puntaje.
- Se requiere un programa completo, no solo una función o fragmento.
- El mismo usuario no puede escribir dos respuestas consecutivas.
- Si la respuesta de alguien viola una regla, deje un comentario. Si el error no se soluciona en 30 minutos, debe eliminarse.
Fragmento de idioma usado
Este es un fragmento de pila, creado por ETHproductions, FryAmTheEggman y Mauris, que realiza un seguimiento de las puntuaciones de los usuarios y los idiomas utilizados. Originalmente se copió de la increíble plantilla de Martin Büttner .
Tabla de clasificación original:
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2],x[t]=x[t]||0,x[t]++}});Object.keys(r).forEach(function(e){r[e]*=x[e]});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<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="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</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>
Nueva versión (experimental), utilizando una fórmula modificada:
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,r){return"http://api.stackexchange.com/2.2/answers/"+r.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var r=+e.share_link.match(/\d+/);answer_ids.push(r),answers_hash[r]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[],r={},x={};answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var n=a.match(SCORE_REG);if(n){var t=getAuthorName(s);e.push({user:getAuthorName(s),size:+n[2],language:n[1],link:s.share_link}),r[t]=r[t]||0,r[t]+=30/+n[2]+20,x[t]=x[t]||0,x[t]++}});var s=Object.keys(r).sort(function(e,s){return r[s]-r[e]});e.sort(function(e,r){var s=e.size,a=r.size;return s-a});var a={},t=null;e.forEach(function(e){t=e.size;var r=e.language;/<a/.test(r)&&(r=jQuery(r).text()),a[r]=a[r]||{lang:e.language,user:e.user,size:e.size,link:e.link}});for(var c=0,o=1;c<s.length;c++){var i=jQuery("#author-template").html();r[s[c]]!==r[s[c-1]]&&(o=c+1);i=i.replace("{{PLACE}}",o+'.').replace("{{NAME}}",s[c]).replace("{{SCORE}}",r[s[c]].toFixed(2)),jQuery("#authors").append(jQuery(i))}var u=[];for(var m in a)a.hasOwnProperty(m)&&u.push(a[m]);u.sort(function(e,r){var s=e.lang.replace(/<.*?>/g,"").toLowerCase(),a=r.lang.replace(/<.*?>/g,"").toLowerCase();return s>a?1:a>s?-1:0});for(var l=0;l<u.length;++l){var h=jQuery("#language-template").html(),m=u[l];h=h.replace("{{LANGUAGE}}",m.lang).replace("{{NAME}}",m.user).replace("{{SIZE}}",m.size).replace("{{LINK}}",m.link),h=jQuery(h),jQuery("#languages").append(h)}}var QUESTION_ID=57327,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=16294,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#author-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<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="author-list"> <h2>Leaderboard</h2> <table class="author-list"> <thead> <tr><td></td><td>Author</td><td>Score</td></tr></thead> <tbody id="authors"> </tbody> </table> </div><div id="language-list"> <h2>Languages</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="author-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{SCORE}}</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>
Para garantizar que el fragmento reconozca su envío, utilice la siguiente plantilla de encabezado:
# Language, X characters added
Respuestas:
Java, 124 caracteres añadidos
Mientras todavía hay espacio!
La cuadrícula es ahora
Hizo una edición ninja e invirtió el código en la cuadrícula, ya que OP indica que el código puede estar al revés. Luego lo adaptó a la siguiente respuesta
fuente
Paperas, 23 caracteres añadidos
Lo siento nuevamente por no cumplir con el requisito de la pregunta.
Aquí está mi nueva presentación:
Esto establece la variable t en un espacio, luego lee como máximo 50 caracteres de la entrada estándar con un tiempo de espera de 20 segundos, escribe una nueva línea, la variable y luego otra nueva línea. (Muchos terminales de paperas se vuelven un poco desordenados si no haces eso ...)
La cuadrícula es ahora:
esa maldita sumisión R hizo que esto fuera un poco más difícil de escribir ... :-)
fuente
Beatnik , 29 caracteres añadidos
Explicación que viene :)
La nueva cuadrícula
fuente
C, 27 caracteres añadidos
Alguien mencionó a C, y vi que todavía era posible.
Nueva cuadrícula:
fuente
??? , 1 personaje agregado
La cuadrícula es ahora:
fuente
Urna , 3 caracteres añadidos
La nueva cuadrícula:
fuente
Ruby, 9 caracteres agregados
La cuadrícula es ahora:
fuente
LISP, 3 caracteres agregados
La nueva cuadrícula:
fuente
Perl, 6 caracteres añadidos
La cuadrícula es ahora:
fuente
Quipu , 3 caracteres agregados
El programa del gato en Quipu tiene cuatro caracteres:
Gire 90 ° y reutilicé una de las barras del programa Rail .
La nueva cuadrícula:
fuente
Marbelous , 7 caracteres añadidos
(Si entendí correctamente cómo funciona Marbelous ...)
fuente
00\n]]
lo habría hecho.Pyth, 1 personaje agregado
La cuadrícula es ahora:
fuente
w__t_
Veo lo que hiciste allíPowerShell, 14 caracteres añadidos
Voy a ser agradable y dar a la gente mucho más espacio para respirar. :)
La cuadrícula es ahora
fuente
ALGOL 68, 7 caracteres añadidos
La nueva cuadrícula:
fuente
LOLCODE , 31 caracteres añadidos
Justo a la derecha del medio, girado 90 o . A tope muy bien contra el
-
,y
d
allí. Sin embargo, entre esto, los archivos Batch y PowerShell, estoy bastante seguro de que no voy a ganar según los puntos. :-)La cuadrícula es ahora:
(También corregí la cuarta fila desde abajo)
fuente
Prólogo (SWI), 14 caracteres agregados
Lee un solo carácter y lo genera. En Ideone, esto funciona pero con salida a stderr. Con
swipl
en Ubuntu, hace lo siguiente:donde
X
se ingresa el caracter y?-
es un aviso. Puede salir del indicador con Ctrl-D.Nueva cuadrícula (el código lee de arriba a abajo, de derecha a izquierda cerca de la esquina superior derecha):
fuente
oOo CODE , 1 personaje agregado
Nueva cuadrícula:
fuente
Laberinto , 1 personaje añadido
Lee y escribe un personaje.
La cuadrícula es ahora
fuente
Haz, 11 caracteres añadidos
Se agregó una H adicional para evitar que se comporte como un programa de gato. Los
q
yi
son ignorados. Probablemente podría haber ido más grande con esto, pero eso parecía un poco como hacer trampa.La cuadrícula es ahora
fuente
ferNANDo , 31 caracteres añadidos
La nueva cuadrícula:
fuente
Esquema, 8 caracteres agregados
La nueva cuadrícula:
fuente
Bash, 6 caracteres añadidos
La cuadrícula es ahora:
fuente
itflabtijtslwi , 5 caracteres añadidos
Este es el idioma /// pero con la entrada del usuario cuando está rodeado de
GG
. Se "nombra" lo que se interponga entre ellos. Por lo tanto, esto solo hace eco del primer carácter de STDIN. (Dado que esto solo lee 1 carácter, el nombre de 2 caracteres significa que siempre se detendrá después de reemplazar Oa con lo que escribe)Agregado a la parte superior izquierda verticalmente desde (a través, abajo) = (0,1) a (0,9)
La nueva cuadrícula:
fuente
GOa
! +1PHP, 24 caracteres añadidos
La cuadrícula es ahora:
fuente
var_dump($argv);
. En suprint_r($args)
lugar, puede usar y guardar 1 byte.Retina , 1 personaje agregado
Esto es esencialmente
cat
.G
activa el modo grep, es decir, el programa imprime cada línea del programa que coincide con la expresión regular dada. Pero la expresión regular está vacía, por lo que cada línea coincide y la entrada completa se imprime de nuevo en STDOUT.fuente
RunR , 8 caracteres añadidos
Una última por el momento
Agregado cerca del medio, abajo y dejó un poco. La nueva cuadrícula es
fuente
Mathematica, 19 caracteres agregados
Nueva cuadrícula:
fuente
Haskell, 16 caracteres añadidos
Copia stdin a stdout. El código comienza en la línea 15, char 39.
fuente
Ook! , 19 caracteres añadidos
Colocado en la línea 24.
fuente
Octave / Matlab, 23 caracteres añadidos
¿Podemos poner C? :RE
La cuadrícula es ahora:
fuente