Neste desafio, criaremos juntos uma pesquisa por palavras contendo muitos programas em diferentes idiomas.
Comecei com uma grade de espaços em branco de 60 por 25 ( ·
), alguns dos quais são substituídos pelos caracteres de um programa Ruby.
Para responder, escolha um idioma que ainda não foi usado. Usando o idioma escolhido, escreva um programa que leia um caractere, token, linha ou toda a entrada do console e imprima-o . Em seguida, insira seu programa na pesquisa por palavras.
Por exemplo, suponha que você escolha Python 3 para sua resposta e escreva o programa print(input())
. Agora você precisa inserir esse programa na grade.
Se a grade antes da sua resposta estiver assim:
···a·24··········
··z····t·········
Então você pode simplesmente colocar seu programa na segunda linha, sobrepondo-se ao existente t
:
···a·24··········
··zprint(input())
Observe que você pode colocar seu programa em qualquer direção: para frente, para trás, para cima, para baixo ou na diagonal, desde que esteja em uma linha reta.
Mas e se a grade existente estiver assim:
···a·24··········
··z····q·········
Não há como encaixar print(input())
aqui sem alterar os caracteres existentes, o que é proibido. Em vez disso, você pode alterar o programa:
print(
input())
Este programa de duas linhas se encaixa perfeitamente:
···a·24·print(···
··z····q input())
Aqui você substitui um espaço em branco ( ·
) por um espaço (
). No entanto, um espaço é como qualquer outro caractere e não pode ser substituído em programas futuros.
Assim como um one-liner, um programa multi-line pode ser colocado em qualquer direção. Por exemplo, em uma grade maior, você pode fazer o seguinte, girando o programa 135 ° no sentido horário.
··········
········ ·
·······i·p
······n·r·
·····p·i··
····u·n···
···t·t····
··(·(·····
·)········
)·········
Pontuação
Sua pontuação para cada resposta é trinta, dividida pelo número de caracteres adicionados. Não conte caracteres que já existiam na grade, mesmo que você os use.
Sua pontuação total é a soma das pontuações de todas as suas respostas, multiplicada pelo número de respostas. Maior pontuação ganha.
Regras
- Toda resposta deve ser escrita em um idioma diferente. Os idiomas que diferem apenas no número da versão (por exemplo, Python 2 e Python 3) são considerados os mesmos.
- Toda resposta deve se basear na resposta válida mais recente. Ou seja, pegue a grade da resposta mais recente e insira seu programa nela.
- Para inserir seu programa, substitua pelo menos um dos espaços em branco (
·
) pelos caracteres de sua escolha. Você pode usar caracteres existentes da grade em sua resposta, mas não pode alterar ou mover nenhum deles.
- Você não pode inserir mais de 500 caracteres no total, em todas as suas respostas.
- Todos os caracteres que você inserir devem fazer parte do seu programa.
- Seu programa pode consistir apenas em ASCII e novas linhas imprimíveis, mas pode não haver duas ou mais novas linhas consecutivas consecutivas.
- Novas linhas não contam para sua pontuação.
- É necessário um programa completo, não apenas uma função ou snippet.
- O mesmo usuário não pode escrever duas respostas consecutivas.
- Se a resposta de alguém violar uma regra, deixe um comentário. Se o erro não for corrigido em 30 minutos, ele deverá ser excluído.
Snippet de idioma usado
Este é um snippet de pilha, produzido por ETHproductions, FryAmTheEggman e Mauris, que acompanha as pontuações dos usuários e os idiomas usados. Foi originalmente copiado do incrível modelo de Martin Büttner .
Cabeçalho 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>
Nova versão (experimental), usando uma 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 garantir que seu envio seja reconhecido pelo snippet, use o seguinte modelo de cabeçalho:
# Language, X characters added
Respostas:
Java, 124 caracteres adicionados
Enquanto ainda há espaço!
A grade está agora
Fiz uma edição ninja e inverteu o código na grade, pois o OP afirma que o código pode ser reverso. Em seguida, adaptou-o para a próxima resposta
fonte
Caxumba, 23 caracteres adicionados
Desculpe novamente por não ter cumprido um requisito na pergunta.
aqui está o meu novo envio:
Isso define a variável t como um espaço e, em seguida, lê no máximo 50 caracteres da entrada padrão com um tempo limite de 20 segundos, escreve uma nova linha, a variável e outra nova linha. (Muitos terminais de caxumba ficam meio bagunçados se você não fizer isso ...)
A grade é agora:
que caramba R submissão R tornou isso um pouco mais difícil de escrever ... :-)
fonte
Beatnik , 29 caracteres adicionados
Explicação em breve :)
A nova grade
fonte
C, 27 caracteres adicionados
Alguém mencionou C, e vi que ainda era possível.
Nova grade:
fonte
??? , 1 caractere adicionado
A grade é agora:
fonte
Urna , 3 caracteres adicionados
A nova grade:
fonte
Ruby, 9 caracteres adicionados
A grade é agora:
fonte
LISP, 3 caracteres adicionados
A nova grade:
fonte
Perl, 6 caracteres adicionados
A grade é agora:
fonte
Quipu , 3 caracteres adicionados
O programa para gatos em Quipu tem quatro caracteres:
Girei esses 90 ° e reutilizei uma das barras do programa Rail .
A nova grade:
fonte
Marbelous , 7 caracteres adicionados
(Se eu entendi direito como funciona o Marbelous ...)
fonte
00\n]]
também o teria feito.Pyth, 1 caractere adicionado
A grade é agora:
fonte
w__t_
Eu vejo o que você fez láPowerShell, 14 caracteres adicionados
Vou ser legal e dar às pessoas muito mais espaço para respirar. :)
A grade está agora
fonte
ALGOL 68, 7 caracteres adicionados
A nova grade:
fonte
LOLCODE , 31 caracteres adicionados
Logo à direita do meio, girava 90 graus . Intrometeu-se muito bem contra o
-
,e
d
lá. Entre isso, arquivos em lote e PowerShell, tenho certeza de que não vou ganhar com base em pontos. :-)A grade é agora:
(Também corrigi a quarta linha da parte inferior)
fonte
Prolog (SWI), 14 caracteres adicionados
Lê um único caractere e o produz. No Ideone, isso funciona, mas com saída para stderr. No
swipl
Ubuntu, ele faz o seguinte:onde
X
é o caractere digitado e?-
é um prompt. Você pode sair do prompt com Ctrl-D.Nova grade (o código lê de cima para baixo, da direita para a esquerda, próximo ao canto superior direito):
fonte
oOo CODE , 1 caractere adicionado
Nova grade:
fonte
Labirinto , 1 caractere adicionado
Lê e escreve um personagem.
A grade está agora
fonte
Feixe, 11 caracteres adicionados
Um H extra foi adicionado para impedir que ele se comporte como um programa para gatos. O
q
ei
são ignorados. Eu provavelmente poderia ter aumentado com isso, mas isso parecia um pouco como trapaça.A grade está agora
fonte
ferNANDo , 31 caracteres adicionados
A nova grade:
fonte
Esquema, 8 caracteres adicionados
A nova grade:
fonte
Bash, 6 caracteres adicionados
A grade é agora:
fonte
itflabtijtslwi , 5 caracteres adicionados
Este é o idioma ///, mas com a entrada do usuário quando cercado por
GG
. É "nomeado" o que quer que ocorra entre eles. Portanto, isso apenas ecoa o primeiro caractere de STDIN. (Como só lê 1 caractere, o nome de 2 caracteres significa que ele sempre será interrompido após a substituição de Oa pelo que você digita)Adicionado ao canto superior esquerdo verticalmente de (transversalmente, inferior) = (0,1) a (0,9)
A nova grade:
fonte
GOa
! +1PHP, 24 caracteres adicionados
A grade é agora:
fonte
var_dump($argv);
. Você pode usarprint_r($args)
e salvar 1 byte.Retina , 1 caractere adicionado
Isto é essencialmente
cat
.G
ativa o modo grep, ou seja, o programa imprime cada linha do programa que corresponde ao regex especificado. Mas a regex está vazia, portanto, cada linha é uma correspondência e toda a entrada é impressa novamente em STDOUT.fonte
RunR , 8 caracteres adicionados
Um último no momento
Adicionado perto do meio, para baixo e saiu um pouco. A nova grade é
fonte
Mathematica, 19 caracteres adicionados
Nova grade:
fonte
Haskell, 16 caracteres adicionados
Copia stdin para stdout. O código começa na linha 15, caractere 39.
fonte
Ook! , 19 caracteres adicionados
Colocado na 24ª linha.
fonte
Octave / Matlab, 23 caracteres adicionados
Podemos colocar C? : D
A grade é agora:
fonte