var QUESTION_ID=128104,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/128104/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.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 s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=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=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",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}#answer-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="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><div id="language-list"> <h2>Winners 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><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>
Respostas:
Carvão , 23 bytes
Experimente online! Explicação: Imprime as linhas na seguinte ordem e reflete tudo horizontalmente:
fonte
‖B
significa "Reflect Butterfly"JavaScript (ES6),
144143140138134 bytesUma função recursiva que desenha o caractere de saída por caractere com uma expressão puramente condicional.
Quão?
Para cada posição 0 <p ≤ 363 , definimos:
Abaixo está um detalhamento da fórmula que seleciona o caractere apropriado
[ '\', '/', ' ', '_', '\n' ]
.E abaixo estão as diferentes partes no sistema de coordenadas definidas acima:
Demo
Mostrar snippet de código
fonte
05AB1E , 50 bytes
Experimente online!
A compactação:
A estratégia aqui era construir metade do objeto e espelhar a imagem na metade do caminho. Para fazer isso, construí a metade esquerda primeiro, com preenchimento frontal:
Mas sem preenchimento correto, isso ocorre porque a
.B
função em 05AB1E pode ser usada para tornar cada elemento igual em comprimento usando espaços. Isso permite que eu omita os espaços estranhos à direita e apenas delimite por novas linhas. Então, peguei esse padrão e removi todas as novas linhas, substituindo-as por,4
para obter:A compactação com base-255 resulta em:
Onde os dois
•
estão denotando uma sequência compactada de base 255 e 5B a estão convertendo em base-5.A segunda parte, após a compactação:
fonte
è
, é claro!V , 61 bytes
Experimente online!
Hexdump:
fonte
Python 2 ,
226213 bytes179 bytesMeu primeiro golfe!
Experimente online!
Tentei fazer um loop dos bits nos quais encontrei um padrão e codifiquei o resto. Definir os diferentes caracteres para uma variável ajudou a economizar bastante bytes.
Editar: decidiu anexar à mesma matriz em vez de ingressar várias vezes. 13 bytes salvos.
Edição 2: Graças a @ValueInk, @jacoblaw, @WheatWizard, @CalculatorFeline e @ Challenger5, salvaram 34 bytes
fonte
b,f,s,u='\/ _';o,a='/ /','\ \\'
economiza 11 bytes sobre sua inicialização de variável atual! Veja aquio
ea
são usados apenas uma vez no código. Aqui está com eles inline.0,1,2,3
instead ofrange(4)
to save a byte.J, 155 bytes
Try it online!
This is a function that expects no input. E.g.,
f =: <code>
thenf ''
.Explanation
I encoded this using the following steps. Assume that the desired compression string is contained in the variable
h
.Then, we just need to decode this.
5#.inv 95x#.32-~3 u:
performs the inverse of what I just described, giving us the list of indices. Then,('_ /\',LF){~
applies the appropriate characters to each index.fonte
Mathematica, 227 bytes
fonte
Charcoal,
47 4341 bytesTry it online!
I did not know a thing about Charcoal until right now, I felt like "I have no idea of what I'm doing" while trying to figure out this answer... I'm quite sure this can be golfed a lot.
Updates:
fonte
‖B
but I could not figure out how... nice answer!Ruby, 117 bytes
fonte
Retina,
129114102 bytesThanks to ovs for -12 bytes!
Try it online!
fonte
05AB1E,
928680 bytesTry it online!
Explanation in parts
The bar at the top
The line immediately below the bar
The remainder of the upper portion of the hexagon
The remainder except for the last 2 lines
The second to last line
The last line
The
»
at the end joins everything on newlines.fonte
{_
becomes{_{
, where with mirror it becomes{_}
. Palendromize isû
, while mirror is∞
. There is also an intersected mirror, which is.∞
.C#,
210199 bytesEncodes the length of space runs and underscore runs:
Ungolfed:
Try It Online!
fonte
Retina, 129 bytes
Try it online! Completely different approach, yet coincidentally the same length!
fonte
///, 152 bytes
Try it online!
fonte
MATL,
5855 bytesTry it online!
fonte
Pyth, 111 bytes
This code basically prints the lines one after another (in the naive way of doing it). Yeah it sucks, but right now I'm in no state of doing better, and I too still wanted to pay tribute to HyperNeutrino.
Try it online!
fonte
PHP, 122 bytes
Try it online!
PHP, 158 bytes
Try it online!
PHP, 165 bytes
Try it online!
fonte
SOGL V0.12,
5352 bytesTry it Here!
fonte
Python 2, 187 bytes
Try it online!
fonte
C# (.NET Core), 169 bytes
Ungolfed:
For each stroke I encoded the start position, length, character used, and direction within various strings. I saved a few bytes by grouping up similar strokes.
Sadly, this prints a little weird in tio. This is because I'm not printing out real spaces. Looks fine in my console, though. So probably this submission doesn't count. Here's the link anyways.
Try it online! (fake spaces 169 bytes)
Try it online! (real spaces 191 bytes)
fonte
Python 2,
154138 bytesTry it online!
fonte
Paintbrush, 43 bytes, non-competing
Explanation
Beta Testing in the Real World:
Gotta make a lot of improvements, huh. :P
fonte
Bubblegum,
6754 bytesTry it online!
fonte
C (gcc), 200 bytes
Try it online!
fonte