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>
Odpowiedzi:
Węgiel , 23 bajty
Wypróbuj online! Objaśnienie: Drukuje linie w następującej kolejności, a następnie odzwierciedla wszystko poziomo:
źródło
‖B
oznacza „Reflect Butterfly”JavaScript (ES6),
144143140138134 bajtówFunkcja rekurencyjna rysująca wynik po znaku za pomocą wyrażenia czysto warunkowego.
W jaki sposób?
Dla każdej pozycji 0 <p ≤ 363 definiujemy:
Poniżej znajduje się podział formuły, z której wybiera odpowiednią postać
[ '\', '/', ' ', '_', '\n' ]
.Poniżej znajdują się różne części zdefiniowanego powyżej układu współrzędnych:
Próbny
Pokaż fragment kodu
źródło
05AB1E , 50 bajtów
Wypróbuj online!
Kompresja:
Strategia polegała na zbudowaniu połowy obiektu, a następnie odbiciu obrazu w półmetku. Aby to zrobić, najpierw zbudowałem lewą połowę z wyściółką z przodu:
Ale brak odpowiedniego dopełnienia, ponieważ
.B
funkcja w 05AB1E może być użyta do wyrównania długości każdego elementu za pomocą spacji. Pozwala mi to pominąć niepotrzebne spacje po prawej stronie i po prostu ograniczyć znakami nowej linii. Następnie wziąłem ten wzór i usunąłem wszystkie znaki nowej linii, zastępując je,4
aby uzyskać:Kompresowanie tego z base-255 powoduje:
Gdzie dwa
•
oznaczają skompresowany ciąg base-255, a 5B przekształca go w base-5.Druga część po kompresji:
źródło
è
, oczywiście!V , 61 bajtów
Wypróbuj online!
Hexdump:
źródło
Python 2 ,
226213 bajtów179 bajtówMój pierwszy golf!
Wypróbuj online!
Próbowałem zapętlić bity, na których mogłem znaleźć wzór, a resztę zakodowałem na stałe. Ustawienie różnych znaków na zmienną pomogło zaoszczędzić sporo bajtów.
Edycja: postanowiono dołączyć do tej samej tablicy zamiast łączyć wiele razy. Zapisano 13 bajtów.
Edycja 2: Dzięki @ValueInk, @jacoblaw, @WheatWizard, @CalculatorFeline i @ Challenger5, zapisano 34 bajty
źródło
b,f,s,u='\/ _';o,a='/ /','\ \\'
oszczędza 11 bajtów w stosunku do bieżącej inicjalizacji zmiennej! Zobacz tutajo
ia
są używane tylko raz w kodzie. Tutaj jest z nimi wbudowane.0,1,2,3
zamiast,range(4)
aby zapisać bajt.J , 155 bajtów
Wypróbuj online!
Jest to funkcja, która nie oczekuje żadnych danych wejściowych. Na przykład
f =: <code>
wtedyf ''
.Wyjaśnienie
Zakodowałem to, wykonując następujące kroki. Załóżmy, że żądany ciąg kompresji jest zawarty w zmiennej
h
.Następnie musimy to tylko zdekodować.
5#.inv 95x#.32-~3 u:
wykonuje odwrotność tego, co właśnie opisałem, dając nam listę wskaźników. Następnie('_ /\',LF){~
stosuje odpowiednie znaki do każdego indeksu.źródło
Mathematica, 227 bajtów
źródło
Węgiel drzewny ,
47 4341 bajtówWypróbuj online!
Do tej pory nie wiedziałem nic o węglu drzewnym. Czułem, że „nie mam pojęcia, co robię”, próbując znaleźć odpowiedź… Jestem pewien, że można w nią dużo grać.
Aktualizacje:
źródło
‖B
ale nie mogłem zrozumieć, jak ... ładna odpowiedź!Rubin, 117 bajtów
źródło
Siatkówka ,
129114102 bajtówDzięki ovs za -12 bajtów!
Wypróbuj online!
źródło
05AB1E ,
928680 bajtówWypróbuj online!
Objaśnienie w częściach
Pasek u góry
Linia bezpośrednio pod paskiem
Pozostała część górnej części sześciokąta
Reszta z wyjątkiem ostatnich 2 wierszy
Przedostatnia linia
Ostatnia linia
Na
»
końcu dołącza wszystko na nowych liniach.źródło
{_
staje się palindromize{_{
, a lustro staje się{_}
. Palendromize jestû
, a lustro jest∞
. Jest też przecięte lustro, które jest.∞
.DO#,
210199 bajtówKoduje długość przebiegów w przestrzeni i przebiegów podkreślenia:
Nie golfowany:
Wypróbuj online!
źródło
Siatkówka , 129 bajtów
Wypróbuj online! Zupełnie inne podejście, ale przypadkowo ta sama długość!
źródło
/// , 152 bajty
Wypróbuj online!
źródło
MATL ,
5855 bajtówWypróbuj online!
źródło
Pyth , 111 bajtów
Ten kod zasadniczo drukuje wiersze jeden po drugim (w naiwny sposób). Tak, to do bani, ale w tej chwili nie jestem w stanie się lepiej, a ja nadal chciałem złożyć hołd HyperNeutrino .
Wypróbuj online!
źródło
PHP , 122 bajty
Wypróbuj online!
PHP , 158 bajtów
Wypróbuj online!
PHP , 165 bajtów
Wypróbuj online!
źródło
SOGL V0.12 ,
5352 bajtyWypróbuj tutaj!
źródło
Python 2 , 187 bajtów
Wypróbuj online!
źródło
C # (.NET Core) , 169 bajtów
Nie golfowany:
Dla każdego pociągnięcia kodowałem pozycję początkową, długość, użyty znak i kierunek w różnych ciągach. Zaoszczędziłem kilka bajtów, grupując podobne pociągnięcia.
Niestety, to wydruki są trochę dziwne w tio. To dlatego, że nie drukuję prawdziwych przestrzeni. Wygląda dobrze w mojej konsoli. Prawdopodobnie to zgłoszenie się nie liczy. Oto i tak link.
Wypróbuj online! (fałszywe spacje 169 bajtów)
Wypróbuj online! (rzeczywiste spacje 191 bajtów)
źródło
Python 2 ,
154138 bajtówWypróbuj online!
źródło
Pędzel , 43 bajty, niekonkurujący
Wyjaśnienie
Testy beta w realnym świecie:
Muszę wprowadzić wiele ulepszeń, huh. : P
źródło
Bubblegum ,
6754 bajtówWypróbuj online!
źródło
C (gcc) , 200 bajtów
Wypróbuj online!
źródło