/* Configuration */
var QUESTION_ID = 88653; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 48934; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
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:
Brainfuck , 47 bajtów
Wypróbuj online!
źródło
>.<
>++>
C (gcc),
4139 bajtówźródło
main(i){while(11-i++)puts("**********");}
jest alternatywą o tej samej długości.puts()
(i wartości początkoweji
).Bash + coreutils, 19 bajtów
Wolę powtarzać rzeczy w Bash, używając „tak”.
Zapisałem 2 bajty według sugestii @ Neila. Ale gdy katalog, w którym uruchomiono to polecenie, zawiera nie tylko pliki zaczynające się od „.” dot trzeba załączyć gwiazdy
*
z"
.Bash + coreutils, 21 bajtów
źródło
yes
. Zazwyczaj nazywamy takie rozwiązania „Bash + coreutils”.head
..
?yes \**********|head
bez ograniczeń plików.Vim,
138 bajtówZaoszczędź 5 bajtów dzięki @Lynn
10i*␛
wstaw 10 razy*
,Y9p
skopiuj linię i wklej ją 9 razy.źródło
10i*♥Y9p
Pracuje.yy9p
się, ale dobra robota, używając wielkich liter, aby uratować postać!Pyth, 6 bajtów
T
ma 10 w Pyth,Vab
wykonujeb
a
czasy instrukcji ,\*
jest stałą znaku gwiazdki, a mnożenie (*
) ciągu znaków i liczby całkowitej powtarza ten ciąg n razy. Ukryte drukowanie Pytha oznacza, że drukowanychV
jest 10 wierszy.źródło
Sześciokąt,
37353431Rozszerzony:
Wypróbuj online
Zasadniczo ma tylko dwie pętle odliczające od dziesięciu do zera, wypisujące gwiazdkę na wewnętrznej pętli i nową linię na zewnętrznej pętli.
Wyjaśnienie:
Program składa się z trzech głównych części: inicjalizacji pamięci, pętli drukującej dziesięć gwiazdek i pętli drukującej nową linię. Pętla, która wypisuje nową linię, zawiera również pętlę, która wypisuje gwiazdki.
Po pierwsze, kod uruchamia całkowicie liniową inicjalizację pamięci. Kod działa się:
10"+}42
. To powoduje, że pamięć pobliskich krawędzi wygląda następująco:42 to kod ASCII dla znaku gwiazdki, a dwa dziesiątki zostaną użyte jako nasze liczniki pętli. Warto zauważyć, że wskaźnik pamięci obecnie wskazuje na dwie dziesiątki, więc cofnięcie się spowoduje umieszczenie nas na jednej z dziesiątek.
Następnie uruchamiamy pętlę drukowania asterysku. Liniowo, kod wygląda następująco:
;".._(
. To wypisuje gwiazdkę, przesuwa wskaźnik pamięci do tyłu i w lewo, a na koniec zmniejsza tam wartość. Po jednej iteracji pamięć wyglądałaby następująco:Następnie osiągamy warunek pętli: skrajnie lewy dolny
>
. Jeśli krawędź, którą właśnie zmniejszyliśmy, jest nadal dodatnia, odbijamy się i wykonujemy a,{
aby przenieść nas z powrotem na 42. Następnie wciskamy a$
i wracamy do początku pętli drukowania;
, pomijając<
. Jeśli wartość wynosiła zero, przechodzimy do drugiej pętli.Zewnętrzna pętla zaczyna się od zresetowania ostatnio zerowanego brzegu pamięci do dziesięciu (jest to
10
w kodzie, jadąc na południowy zachód). Następnie wypisujemy dziesięć jako znak ASCII, który jest nowym wierszem. Następnie przechodzimy na drugą krawędź pamięci i zmniejszyć je{(
, a następnie wykonać to, co jest równoznaczne z bandą noops:=${_=
. Teraz, po jednej iteracji tej pętli, pamięć wyglądałaby następująco:Tym razem pamięć jest skierowana na zewnątrz od krawędzi, przechowując dziewięć na powyższym schemacie. Następnie wykonujemy
<
warunek, który działa jako warunek pętli dla pętli zewnętrznej. Jeśli wartość była niezerowa, odbijamy się od niektórych luster, a następnie ponownie zaczynamy wykonywać sensowne instrukcje po wejściu na szczyt sześciokąta w"
ruchu na południowy zachód. To powoduje, że przesuwamy się do tyłu i w lewo, ponownie na 42, ale skierowane do wewnątrz. Następnie=
odwraca nasz kierunek, odpowiednio resetując stan, aby ponownie rozpocząć wewnętrzną pętlę. Jeśli krawędź została ustawiona na zero, wskaźnik instrukcji rozpoczyna małą przygodę, która nic nie robi, dopóki nie wyjdzie z programu.Przygoda rozpoczyna się od wskaźnika instrukcji wyruszającego na północny wschód, niebezpiecznie ignorując bezpieczeństwo głównych kierunków. Odważnie ignoruje lustro, które jest wyrównane z jego kierunkiem (
/
) i heroicznie wyskakuje z trampoliny ($
) całkowicie omijając śmiertelną pułapkę innej, całkowicie identycznej trampoliny. Wpatrując się w pustkę niezainicjowanych krawędzi sześciokąta, wskaźnik bez wahania dodaje dwie puste krawędzie, które są skierowane do siebie, ustawiając bieżącą krawędź na ich sumę: 0 (krawędź była wcześniej zerowa, ale wskaźnik lubi wierzę, że to było dość ważne). Ponieważ krawędź wynosi zero, wskaźnik wykonuje zakręt w lewo na rozwidleniu drogi, idąc do tajemniczego lasu (sześciokątów). Tam czuje się zdezorientowany, porusza się do przodu, do tyłu i do przodu, aż skończy w tym samym miejscu w pamięci, kiedy zaczął. Myśląc, że problem musi polegać na tym, że ostatnia krawędź została ostatnio ustawiona na zero, wskaźnik dzielnie umieścił a1
do aktualnej krawędzi. Następnie szlachetny wskaźnik bada inną ścieżkę, jedną z ... pułapką! Bieżąca krawędź jest zmniejszana i zerowana! Wskaźnik oszołomiony szokującym zwrotem zdarzeń wpada z powrotem w pułapkę, ustawiając bieżącą krawędź na ujemną. Rozwścieczony wskaźnik próbuje wrócić do względnie przyjemnego lasu, ale zauważa, że ponieważ obecna krawędź nie jest dodatnia, ścieżki ponownie się zmieniły i wskaźnik wchodzi do jaskini. A przez jaskinię mam na myśli ujście gigantycznego sześciokątnego robaka. Bezradny wskaźnik przeklina seksualność umierającym oddechem. Ponadto program się kończy.źródło
Emacs,
108 naciśnięć klawiszyF3 C-1 0 * ENTER F4 C-9 F4
Wyjaśnienie
Dzięki Seanowi za uratowanie dwóch naciśnięć klawiszy, sugerując zastąpienie C-udigitgo C-digit.
źródło
C-u
liczy się jako jedno naciśnięcie klawisza, możesz ogolić dwa pociągnięcia, wpisującC-1 C-0
(lubM-1 M-0
) zamiastC-u 1 0
iC-9
zamiastC-u 9
.F3
C-1
0
*
ENTER
C-1
0
F4
Galaretka , 7 bajtów
Co się dzieje?
Przetestuj na tryitonline
źródło
Ṅ9¡
.”*ẋ⁵Wẋ⁵
.Y
na końcu, aby „wydrukować ten dokładny tekst”PowerShell,
1412 bajtówKonstruuje ciąg gwiazdek o długości
10
za pomocą mnożenia ciągów. Hermetyzuje to w parens i podaje je operatorowi przecinków w celu skonstruowania tablicy. Używamy mnożenia tablic do budowy 10-elementowej tablicy składającej się z tego elementu (tj. 10-elementowej tablicy ciągów gwiazdek). Pozostaje to w potoku, a dane wyjściowe są niejawne (ponieważ domyślnaWrite-Output
tablica jest oddzielona znakiem nowej linii, otrzymujemy ją za darmo - dzięki @Joey za wyjaśnienie).Starsze, 14 bajtów
Pełny program Pętle od
0
do9
przezForEach-Object
pętlę|%{...}
. W każdej iteracji używamy mnożenia ciągów, aby utworzyć10
ciąg długości*
. Te powstałe ciągi są pozostawione w potoku, a dane wyjściowe na końcu są niejawne (ponieważ domyślnaWrite-Output
tablica jest oddzielona znakiem nowej linii, otrzymujemy ją za darmo - dzięki @Joey dla wyjaśnienia).źródło
ToString
, jest rozwijana i przekazywana element po elemencie do Write-Output. W kontekstach, w których tablica jest konwertowana na ciąg, elementy są rozdzielane spacjami.V , 7 bajtów
Wypróbuj online!
Odpowiedź jest tak prosta, jak tylko może być.
Wyjaśnienie:
Wersja niekonkurencyjna (5 bajtów):
Wyjaśnienie:
To nie działało, gdy wyzwanie zostało opublikowane z powodu błędu.
źródło
E9
iC4
odpowiednio.Meduza ,
1210 bajtówDzięki Zgarbowi za oszczędność 2 bajtów.
Wypróbuj online!
Wyjaśnienie
Używając bardziej konwencjonalnej notacji, ten program reprezentuje następujące wyrażenie:
&;
przyjmuje jedną wartość i tworzy parę z dwukrotnością tej wartości, więc&;(10)
daje nam[10 10]
. Następnie$
przekształca się, tworząc siatkę 10x10 gwiazdek. Na koniecP
wypisuje tablicę w „formacie macierzy”, która drukuje każdy ciąg w osobnej linii.źródło
HTML i CSS,
10460 bajtówNie jestem pewien, czy liczba bajtów jest poprawna (ponieważ nie liczę
<style>
tagów dla CSS. HTML może również zostać skrócony, jeśli użyłem preprocesora HTML, ale nie jestem pewien, czy to łamie regułyDzięki manatwork i Business Cat.
Zobacz mój wpis Jade z 36 bajtów
źródło
/
i zapisać wszystkie tagi w tym samym wierszu. Ale lepiej zmień tagi,<p>
ponieważ są krótsze, nawet jeśli musisz dodaćp{margin:0}
.>
wierzęPython 2,
2221 bajtówźródło
print(("*"*10+'\n')*10)
pracował dla mnie.print
.MATLAB, 14 bajtów
źródło
*
.mat
sugeruje matrycę, dlatego zapytałem.APL , 9 bajtów
Działa na wszystkich APL-ach, jakie kiedykolwiek stworzono.
10 10
dziesięć rzędów i dziesięć kolumn⍴
cykliczne R epeating'*'
gwiazdaWypróbuj APL online!
źródło
∘.⊢⍨⍕⍨,⍨5
Java 7, 63 bajty
Tylko dla kopnięć. Nie mogę znaleźć żadnych sztuczek, które mogłyby to skrócić. Próba dodania logiki dla pętli 100 lub zwrócenie ciągu zamiast drukowania po prostu kończy się gorzej.
źródło
i
jako zmienną klasową (domyślnie jest to0
):int i;void f(){for(;i++<10;)System.out.println("**********");}
i=0
gdzieś w tej funkcji, negując oszczędności.int i=10;void f(){System.out.println("**********");if(i-->0)g();}
; Jeden po drugim rekursywnego wynosi 67 bajty:int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}
; Korzystanie String konstruktora char-tablicy jest 82 bajtów:void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}
; a string.Format jest 81 bajtów:void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}
. Ach, próbowaliśmy. ;)Ruby, 15 znaków
Przykładowy przebieg:
źródło
?**10
? Rzeczywiście tworzy ciąg dziesięciu gwiazdek, ale nie jestem?
to dosłowny zapis postaci, więc?* == '*'
. Druga*
toString.*
metoda , więc?**10 == '*'.*(10)
.?
jest dosłowne oznaczenie czegokolwiek, ale być może niektóre pytania lepiej pozostawić bez odpowiedzi. ;)?
znak, po którym następuje znak, bez konieczności zamykania pary?
znaku.There is also a character literal notation to represent single character strings, which syntax is a question mark (?) followed by a single character or escape sequence that corresponds to a single codepoint in the script encoding:
Notatnik,
3431 naciśnięć klawiszy^ oznacza naciśnięcie klawisza Ctrl- <następujący znak>, ↑ ↓ to odpowiednio klawisze góra i dół.
Rekwizyty do Crypto za 3 zapisane naciśnięcia klawiszy.
źródło
**********↵^A^C↓^V^A^C↓^V^V^V^V
*****^A^C^V^V↵^A^C^V^A^C^V^V^V^V^V
**^A^C^V^V^V^V^V↵^A^C^V^V^A^C^V^V^V^V^V
Emojicode , 54 bajty
Wyjaśnienie:
źródło
05AB1E, 7 bajtów
Wyjaśnienie
Wypróbuj online
źródło
т'*×Tô»
jest kolejnym zupełnie innym lol.TLú'*ζ»
użycie wypełniacza zip to kolejny pomysł ... choć zły.R,
2729 bajtówAlternatywna odpowiedź (34 bajty) to:
cat(rep('**********',10),sep='\n')
źródło
\r
.cat(matrix('*',10,10),fill=10,sep='')
skrzypce rwrite(rep("*",100),"",10,,"")
write(rep("**",50),1,5,,"")
27 bajtów i pozwala uniknąć pierwszego powrotu karetki.PHP, 32 bajty
(wariant 32 bajtów - napisano za pomocą
echo
)(wariant 33 bajtów)
(wariant 33 bajtów)
(wariant 35 bajtów)
(wariant 38 bajtów)
źródło
<?=str_repeat("**********↵",10);
echo chunk_split(str_repeat("*",100),10);
jak dotąd najdłuższa, według mojej wizji jest to sposób PHP.for(;++$i<111;)echo$i%11?~Õ:~õ;
lubfor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
for(;$i++<110;)echo"*↵"[$i%11<1];
. I dodać 37 bajtów rozwiązanie tej kolekcji:for(;$i++<110;)echo chr($i%11?42:10);
.MATL , 8 bajtów
Wypróbuj online!
źródło
Brainfuck,
4643 bajtówWypróbuj online! Wymaga interpretera z taśmą, która jest otwarta po lewej stronie i ma 8-bitowe komórki.
Pierwsza część tego programu
+[[---<]+[-->]<]
konfiguruje taśmę w następujący sposób:Daje to 40 do wyprowadzenia gwiazdek (
*
, ASCII 42), 20 do użycia jako licznik pętli i 10 do użycia do wypuszczenia nowych linii.źródło
JavaScript (ES6), 37 bajtów
Prosta odpowiedź.
źródło
alert
?console.log()
i podającREPL
w tytule.Cheddar,
2120 bajtówKolejna prosta odpowiedź.
źródło
->
zamiast drukowania?Haskell, 29 bajtów
<list1> >> <list2>
wykonuje(length <list1>)
kopie<list2>
.źródło
R,
353332 bajtyÔ R,
czasamijesteś taki gadatliwy .for(i in 1:10)cat(rep("*",10),"\n")
Co ciekawe,
cat
funkcja nie ma wartości (zapewniaNULL
STDOUT), więc nie możesz zrobić czegoś takiegorep(cat(rep)))
, co byłoby zabawniejsze!EDYCJA:
Nowe rozwiązanie zaproponowane przez @LeakyNun, -2 bajty.
EDYCJA: Skrócenie go tylko o 1 bajt, o @ user5957401
źródło
for(i in 1:10)"**********\n"
cat
jednak, bo inaczej nic nie da.cat(rep("**********\n",10))
cat
jest spacja, stąd to wyjście.Siatkówka , 12 bajtów
Liczba bajtów zakłada kodowanie ISO 8859-1. Wiodące podawanie linii jest znaczące.
Pierwszy etap zapisuje ciąg dziesięciu gwiazdek, drugi etap zastępuje każdą gwiazdkę całym ciągiem i przesuwem wiersza. Spowoduje to wydrukowanie dwóch końcowych linii.
źródło
J ,
109 bajtów1 bajt dzięki @ Adám.
Tłumacz online .
Wyjaśnienie
10 10
określa wymiar dla operatora,$
który buduje tablicę o określonych wymiarach.źródło
'*'$~,~10