var QUESTION_ID=95745,OVERRIDE_USER=31716;function answersUrl(e){return"https://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,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>
ASCII art
szachownica miałaby kropkę na każdym kwadracie?Odpowiedzi:
Galaretka ,
2524 bajtówWypróbuj online!
Dzięki @Lynn za grę w golfa na 1 bajcie!
Jak to działa
źródło
Vim, 26 bajtów
irnbqkbnr<Esc>Y6p5Vr.VrpYGPgUj
Opiera się na świeżym Vimie, w przeciwnym razie
5V
może wybrać niewłaściwy obszar.irnbqkbnr<Esc>
: Napisz górny wiersz. Wystarczająco łatwe.Y6p
: Zrób resztę wierszy, z wyjątkiem jednego . Oczywiście wszystkie oprócz górnego i dolnego wiersza zawierają nieprawidłowe znaki.5Vr.
: Jeśli nie korzystałeś jeszcze z trybu wizualnego w sesji, możesz zrobić takie rzeczy, aby wybrać 5 linii. Jeśli od razu wpiszesz to samo, spróbuje wybrać 25 linii. Vim jest taki dziwny.Vrp
: Jesteśmy już na linii 2, więc stwórzmy linię pionków.YGP
: Skopiuj linię pionków na swoje miejsce na dole. Właśnie dlatego użyłem6p
zamiast7p
wcześniej.gUj
: Kapitalizuj białe elementy.źródło
Brainfuck , 224 bajty
Zajęło to prawie godzinę, aby to zdobyć.
źródło
Python 2, 63 bajty
Niestety, dość proste podejście było znacznie krótsze niż „sprytne” rzeczy, które próbowałem na początku ...
Dodatkowa odpowiedź, również 63 bajty:
źródło
05AB1E , 24 bajty
Wykorzystuje kodowanie CP-1252 .
Wypróbuj online!
Wyjaśnienie
źródło
Właściwie 26 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Cheddar, 56 bajtów
Korzysta z nowej
=>
funkcji.Wyjaśnienie
źródło
Pyke,
282726 bajtówWypróbuj tutaj!
Nauczyłem się dzisiaj czegoś nowego o moim języku:
1c
można go wykorzystać jako 2-znakowy sposób dzielenia łańcucha znaków na listę znaków.źródło
MATL , 26 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Ruby,
45441 bajt zapisany dzięki tuxcrafting.
To jest 45
Próbowanie czegoś mądrzejszego wydaje się po prostu wydłużyć.
źródło
puts
JavaScript (ES6),
6965 bajtówZaoszczędzono 4 bajty dzięki edc65
źródło
'rnbqkbnrnp....PRNBQKBNR'.replace(/p|\./ig,c=>c.repeat(8)+'\n')
(zmiana\n
na dosłowny nowy wiersz)C #,
9492 bajtyEdycja: Dzięki mleku za zaoszczędzenie 1 bajtu poprzez zmianę kolejności ciągów w celu usunięcia białych znaków powrotu.
Edycja: Zapisano jeszcze 1 bajt, dodając parametr zastępczy ( x zamiast () ) dla funkcji anonimowej i wywołując go z dowolnym obiektem.
Pełny program korzystający z powyższej funkcji:
C # jest bardzo pełnym językiem ...
C # pełny program, 131 bajtów
Nie golfowany:
źródło
a
ib
jako wielkie litery, możesz pozbyć się miejsca poreturn
:return(a+b).ToLower()+...
var
zamiaststring
?var
wielu deklaracji w jednym wierszu. Takstring a="rnbqkbnr\n",b="pppppppp\n",c="........\n";
by się stałovar a="rnbqkbnr\n";var b="pppppppp\n";var c="........\n";
, co zwiększa liczbę bajtów. EDYCJA: Wystąpiłby błąd „ Niejawnie wpisana lokalna deklaracja zmiennej nie może zawierać wielu deklaratorów ” .Python 2, 68 bajtów
Publikowanie mimo to, chociaż powyższa wersja Python 2 jest krótsza. Nie musiałby to być jeden linijka dla ilości bajtów, po prostu się nim bawił.
źródło
z
jest używany tylko raz, kiedy możesz się go pozbyć i wygenerować kropki w wyciągu.Haskell, 53 bajty
a
stosuje się w pierwszej linii, a do określenia długości łańcuchów wykonane zp
,.
iP
(- »<$a
). .źródło
JavaScript (ES6), 73
.toUpperCase
jest po prostu za długiźródło
(r=c=>c[0].repeat(8)+
\ n,b=r
.)=>
oszczędza bajt.PowerShell v2 +, 44 bajty
Ciągi pozostawione w potoku są domyślnie drukowane
Write-Output
podczas wykonywania programu. Łączymy to z domyślnym zachowaniem nowego wiersza dla tablicy, aby utworzyć cztery wiersze kropek z przecinkiem.źródło
,
tworzy tablicę (w tym przypadku tablicę ciągów). DomyślnieWrite-Output
po zakończeniu programu wstawia nowy wiersz między elementami pozostawionymi w potoku, w tym poszczególnymi elementami tablicy. Dlatego nadużywamy domyślnego zachowania wyjściowego, aby nie musieć pisać wyraźnych znaków nowej linii w kodzie.V ,
27, 26 bajtówWypróbuj online!
Zawiera niektóre niedrukowalne znaki, więc oto wersja do odczytu:
gdzie
<esc>
reprezentuje0x1B
. Wyjaśnienie:źródło
Emotinomicon, 89 bajtów
Niestety Emotinomicon nie ma funkcji duplikowania stosu. Przydałby się. Ale przynajmniej krótszy niż Java. :)
Wyjaśnienie:
źródło
Brain-Flak ,
366350 + 3 = 353 bajtówWypróbuj online!
Otrzymuje plus 3, ponieważ wymaga
-A
poprawnego działania flagi.Wyjaśnienie
źródło
((((((((((((((((((((()()()()()){}){}){}()){})[()()()()])[([][][]){}])[][][])[]()())[[][][]])[][])()()()())<([]()())>[()()]))))))))
którym zaoszczędzę 16 bajtów. To wcale nie używa alternatywnego stosu, więc prawdopodobnie może być jeszcze krótszy.Python 3.5, 56 bajtów
Wykorzystuje to pomysł zawata, aby zakodować każdą linię jako
(r*8)[:8]
, za pomocą łańcucha powtarzanego 8 razy i przycinanego na długość8
. Pionki i puste wiersze są po prostu'p'*8
,'.'*8
i'P'*8
, bez przycinania. Pierwszy wiersz używa'rnbqkbn'
, z('rnbqkbn'*8)[:8]
tym kolejną wieżę po prawej stronie po pomnożeniu i przycięciu. Ostatni wiersz jest taki sam, ale pisany wielką literą.Wyrażamy listę części wierszy w sposób kompaktowy
['rnbqkbn','p','.','.','.','.','P','RNBQKBN']
za pomocą uogólnionego rozpakowywania w Pythonie 3.5 . Wypisujemy pierwsze i ostatnie wpisy, a pozostałe jednoznakowe są rozpakowywane z ciągu.W Pythonie 2
split
zamiast tego moglibyśmy zadowolić się 60 bajtami:źródło
Python 3,
828075 bajtówNie jest to najkrótsza odpowiedź w pythonie, ale to moja pierwsza i myślę, że jest całkiem dobra po raz pierwszy
źródło
[:8]for i in['rnbqkbn'....
'rnbqkbn p . . . . P RNBQKBN'.split()
.Partia, 105 bajtów
Partia jest poważnie pełna ...
źródło
R, 75 bajtów
Edycja: Naprawiono głupi błąd i po prostu wypisz teraz dużą część planszy.
źródło
\n
PowerShell,
8273 bajtyźródło
*per
wcześniej, a Google nie daje mi żadnych wskazówek. Masz wyjaśnienie?J,
5552 bajtówKroki testowe i pośrednie
źródło
Python 3, 64 bajty
Oparty na odpowiedzi DLosc na Python 2, jak na mojej nie mogłem poprawić.
1 bajt mniej w porównaniu do używania „\ n” .join
źródło
q, 51 bajtów
źródło
-1 flip"p...P"{y,x,upper y}/:"rnbqkbnr";
. 40 bajtów. Fajne rozwiązanie!GNU sed, 54 bajty
Wypróbuj online!
Wyjaśnienie:
Czarne elementy są drukowane jako pierwsze, co pozwala zaoszczędzić dwa powiązane szeregi planszy w odwrotnej kolejności w miejscu przechowywania. Białe elementy są drukowane przez konwersję miejsca wstrzymania na wielkie litery.
źródło
Java 7,
1039989 bajtów10 bajtów zapisanych w porównaniu do wyjścia zakodowanego na stałe dzięki podejściu @SLC w jego odpowiedzi w języku C # .
Wypróbuj tutaj.
Wynik:
źródło
String f(){return"rnbqkbnr\npppppppp\n........\n........\n........\n........\nPPPPPPPP\nRNBQKBNR";}
To jest 100 bajtów .C #,
85848374 bajtyEdycja: Przypadkowo miał za dużo rzędów pustych miejsc!
Edycja: Uwolniłem dodatkową postać i naprawiłem porządkowanie (przypadkowo cofnęło to wszystko) wiele dzięki @KevinCruijssen
Edycja: przywrócono do 83, ponieważ miałem krewetki w niewłaściwym wierszu
Edycja: Dzięki @adrianmp, który pomógł mi jeszcze bardziej go zmniejszyć, pomijając return
Używając tego samego formatu, co odpowiedź @adrianmp powyżej:
Pełny program korzystający z powyższej funkcji:
źródło
return "
, więc staje się:x=>{return"rnbqkbnr\npppppppp\nxxxxPPPPPPPP\nRNBQKBNR".Replace("x","........\n");};
. Dobra odpowiedź, więc daj +1 ode mnie. I miłego pobytu tutaj. :)x=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");