/* 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>
Jawaban:
Brainfuck , 47 byte
Cobalah online!
sumber
>.<
>++>
C (gcc),
4139 bytesumber
main(i){while(11-i++)puts("**********");}
adalah alternatif, panjang yang sama.puts()
(dan nilai awali
).Bash + coreutils, 19 byte
Saya lebih suka mengulangi hal-hal di Bash menggunakan 'ya'.
Saya menyimpan 2 byte atas saran @ Neil. Tetapi ketika direktori tempat Anda menjalankan perintah ini tidak hanya berisi file yang dimulai dengan '.' dot Anda perlu menyertakan bintang
*
dengan"
.Bash + coreutils, 21 byte
sumber
yes
. Kami biasanya memberi label solusi seperti "Bash + coreutils".head
..
?yes \**********|head
tanpa batasan pada file.Vim,
138 byteDisimpan 5 byte berkat @Lynn
10i*␛
masukkan 10 kali*
, danY9p
salin barisnya dan tempel 9 kali.sumber
10i*♥Y9p
bekerja.yy9p
diri saya sendiri, tetapi pekerjaan yang bagus menggunakan huruf besar untuk menyimpan karakter!Pyth, 6 byte
T
adalah 10 dalam Pyth,Vab
mengeksekusib
a
waktu pernyataan ,\*
adalah karakter tanda bintang konstan, dan mengalikan (*
) string dan integer mengulangi string itu n kali. Pencetakan implisit Pyth denganV
cara 10 baris dicetak.sumber
Segi enam,
37353431Diperluas:
Cobalah online
Pada dasarnya hanya memiliki dua untuk loop menghitung mundur dari sepuluh ke nol, mencetak tanda bintang pada loop dalam, dan baris baru pada loop luar.
Penjelasan:
Program ini terdiri dari tiga bagian utama: inisialisasi memori, loop yang mencetak sepuluh tanda bintang dan loop yang mencetak baris baru. Loop yang mencetak baris baru juga berisi loop yang mencetak tanda bintang.
Pertama, kode menjalankan inisialisasi memori yang benar-benar linier. Kode bekerja menjadi:
10"+}42
. Ini mengatur memori tepi terdekat menjadi seperti:42 adalah kode ASCII untuk karakter asterisk, dan dua puluhan akan digunakan sebagai penghitung loop kami. Yang perlu diperhatikan adalah bahwa penunjuk memori saat ini mengarah menjauh dari dua puluhan, sehingga bergerak mundur akan menempatkan kita pada salah satu dari puluhan.
Selanjutnya, kita mulai lingkaran pencetakan astersisk. Linear, kode terlihat seperti:
;".._(
. Ini mencetak tanda bintang, menggerakkan penunjuk memori mundur dan ke kiri dan akhirnya mengurangi nilai di sana. Setelah satu iterasi, memori akan terlihat seperti:Kemudian kita tekan kondisi loop: paling kiri bawah
>
. Jika tepi yang baru saja kita dekrementasi masih positif, kita terpental dan mengeksekusi{
untuk memindahkan kita kembali ke 42. Kemudian kita menekan a$
dan kembali ke awal loop pencetakan, yaitu;
, dengan melewatkan<
. Jika nilainya nol, kita menuju ke loop lain.Lingkaran luar dimulai dengan mengatur ulang tepi memori yang baru-baru ini menjadi sepuluh (ini adalah
10
dalam kode, menuju barat daya). Kemudian, kami mencetak sepuluh ini sebagai karakter ASCII, yang merupakan baris baru. Berikutnya, kita bergerak ke tepi memori lain dan pengurangan dengan{(
dan kemudian jalankan apa sebesar sekelompok noops:=${_=
. Sekarang, setelah satu iterasi dari loop ini, memori akan terlihat seperti:Kali ini, memori menghadap keluar dari tepi menyimpan sembilan dalam diagram di atas. Selanjutnya kita jalankan
<
yang bertindak sebagai kondisi loop untuk loop luar. Jika nilainya tidak nol, kami terpental dari beberapa cermin, lalu mulai jalankan instruksi yang berarti lagi setelah memasukkan bagian atas segi enam di"
barat daya yang bergerak. Ini menyebabkan kita bergerak mundur dan ke kiri, ke 42 lagi, tetapi menghadap ke dalam. Kemudian=
membalik arah kita, mengatur ulang negara dengan benar untuk memulai lingkaran dalam lagi. Jika tepi diatur ke nol, penunjuk instruksi melanjutkan petualangan kecil yang tidak melakukan apa-apa sampai keluar dari program.Petualangan dimulai dengan penunjuk instruksi yang menjelajah timur laut, dengan mengabaikan keamanan kardinal. Dengan berani mengabaikan cermin yang selaras dengan diretionnya (
/
) dan heroik melompat dari trampolin ($
) sepenuhnya menghindari jebakan maut dari trampolin lain yang sama sekali identik. Menatap kekosongan dari tepi segi enam yang tidak diinisialisasi, pointer, tanpa goyah sejenak, menambahkan dua tepi kosong yang dihadapinya bersama, mengatur tepi saat ini ke jumlah mereka: 0 (tepi sebenarnya nol sebelumnya, tetapi pointer suka percaya ini cukup penting). Karena ujungnya nol, penunjuk berbelok ke kiri di persimpangan jalan, berjalan ke hutan misterius (segi enam). Di sana, ia mendapati dirinya bingung, bergerak maju dan mundur dan maju, sampai berakhir di tempat yang sama dalam ingatan ketika ia mulai. Berpikir bahwa masalahnya pastilah bahwa edge saat ini ditetapkan ke nol terakhir kali, pointer dengan berani menanam a1
ke tepi saat ini. Kemudian, penunjuk mulia menyelidiki jalan lain, satu diletakkan dengan ... sebuah jebakan! Tepi saat ini dikurangi dan diatur kembali ke nol! Penunjuk, bingung oleh pergantian mengejutkan peristiwa, tersandung kembali ke dalam perangkap mengatur tepi saat ini ke yang negatif. Marah, penunjuk berusaha untuk kembali ke hutan yang relatif menyenangkan, hanya untuk memperhatikan bahwa karena tepi saat ini tidak positif, jalan lagi bergeser dan penunjuk menemukan dirinya berjalan ke gua. Dan dengan sebuah gua, maksudku mulut cacing heksagonal raksasa. Tak berdaya, penunjuk itu mengutuk seksualitas dengan napas sekarat. Juga, program berakhir.sumber
Emacs,
108 penekanan tombolF3 C-1 0 * ENTER F4 C-9 F4
Penjelasan
Terima kasih kepada Sean karena telah menyelamatkan dua penekanan tombol, menyarankan untuk mengganti C-udigitdengan C-digit.
sumber
C-u
dihitung sebagai hanya satu penekanan tombol, maka Anda dapat mencukur dua pukulan dengan mengetikC-1 C-0
(atauM-1 M-0
) alih- alihC-u 1 0
danC-9
bukannyaC-u 9
.F3
C-1
0
*
ENTER
C-1
0
F4
Jelly , 7 byte
Apa yang sedang terjadi?
Uji di tryitonline
sumber
Ṅ9¡
.”*ẋ⁵Wẋ⁵
.Y
di bagian akhir untuk "mencetak teks ini dengan tepat"PowerShell,
1412 byteMembangun serangkaian tanda bintang dengan panjang
10
menggunakan perkalian string. Meringkas bahwa dalam parens dan memasukkannya ke dalam koma-operator untuk membangun sebuah array. Kami menggunakan perkalian array untuk membangun array 10-elemen yang terdiri dari elemen itu (yaitu, array 10-elemen string asterisk). Yang tersisa di pipeline, dan output tersirat (karena defaultWrite-Output
untuk array dipisahkan oleh baris baru, kami mendapatkannya secara gratis - terima kasih kepada @ Joey untuk klarifikasi).Lebih lama, 14 byte
Program lengkap. Loop dari
0
ke9
melaluiForEach-Object
loop|%{...}
. Setiap iterasi, kami menggunakan perkalian string untuk membuat10
string panjang*
. String-string yang dihasilkan ditinggalkan di pipeline, dan output pada akhirnya adalah implisit (karena defaultWrite-Output
untuk array dipisahkan dengan baris baru, kami mendapatkannya secara gratis - terima kasih kepada @ Joey untuk klarifikasi).sumber
ToString
, itu terbuka dan diteruskan elemen demi elemen ke Write-Output. Dalam konteks di mana array dikonversi menjadi string, Anda mendapatkan elemennya dipisahkan dengan ruang.V , 7 byte
Cobalah online!
Tentang sejelas jawaban bisa.
Penjelasan:
Versi yang tidak bersaing (5 byte):
Penjelasan:
Ini tidak berfungsi ketika tantangan diposting karena bug.
sumber
E9
danC4
masing - masing.Ubur-ubur ,
1210 byteTerima kasih kepada Zgarb karena telah menghemat 2 byte.
Cobalah online!
Penjelasan
Menggunakan notasi yang lebih konvensional, program ini mewakili ungkapan berikut:
&;
mengambil nilai tunggal dan membuat pasangan dengan nilai dua kali lipat, jadi&;(10)
beri kami[10 10]
. Kemudian$
dibentuk kembali yang membentuk kotak tanda bintang 10x10. Akhirnya,P
mencetak array dalam "format matriks" yang mencetak setiap string pada barisnya sendiri.sumber
HTML & CSS,
10460 byteSaya tidak yakin apakah jumlah byte sudah benar (karena saya tidak menghitung
<style>
tag untuk CSS. HTML juga dapat dipersingkat jika saya menggunakan preprocessor HTML, tapi saya tidak yakin apakah itu melanggar aturanTerima kasih kepada manatwork dan Kucing Bisnis.
Lihat entri Jade saya sebesar 36 byte
sumber
/
dan menulis semua tag di baris yang sama. Tetapi lebih baik ubah tag<p>
karena lebih pendek meskipun Anda perlu menambahkanp{margin:0}
.>
saya percayaPython 2,
2221 bytesumber
print(("*"*10+'\n')*10)
bekerja untukku.print
.MATLAB, 14 byte
sumber
*
s.mat
menyarankan sebuah matriks, itu sebabnya saya bertanya.APL , 9 byte
Bekerja pada semua APL yang pernah dibuat.
10 10
sepuluh baris dan sepuluh kolom⍴
siklis r epeating'*'
sebuah bintangTryAPL online!
sumber
∘.⊢⍨⍕⍨,⍨5
Java 7, 63 byte
Hanya untuk iseng. Saya tidak bisa menemukan trik untuk mempersingkat ini. Mencoba menambahkan logika untuk 100-loop atau mengembalikan String alih-alih mencetak hanya berakhir lebih buruk.
sumber
i
sebagai variabel kelas (defaultnya adalah0
):int i;void f(){for(;i++<10;)System.out.println("**********");}
i=0
suatu fungsi, meniadakan penghematan.int i=10;void f(){System.out.println("**********");if(i-->0)g();}
; Satu per satu rekursif adalah 67 bytes:int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}
; Menggunakan String-konstruktor dengan char-array 82 byte:void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}
; dan String.format adalah 81 bytes:void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}
. Ah, kami sudah mencoba. ;)Ruby, 15 karakter
Contoh dijalankan:
sumber
?**10
? Memang membuat string sepuluh asterisk, tapi saya tidak jelas bagaimana ...?
adalah karakter notasi literal, sehingga?* == '*'
. Yang ke-2*
adalahString.*
metode , jadi?**10 == '*'.*(10)
.?
notasi literal apa pun, tetapi mungkin beberapa pertanyaan lebih baik dibiarkan tidak terjawab. ;)?
tanda diikuti oleh karakter, tanpa memerlukan pasangan penutup dari?
tanda tersebut.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:
Notepad,
3431 penekanan tombol^ menunjukkan Ctrl- <karakter berikut> penekanan tombol, ↑ ↓ masing-masing adalah tombol atas dan bawah.
Props to Crypto untuk 3 penekanan tombol yang disimpan.
sumber
**********↵^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 byte
Penjelasan:
sumber
05AB1E, 7 byte
Penjelasan
Cobalah online
sumber
т'*×Tô»
adalah satu lagi yang sama sekali berbeda dari lol.TLú'*ζ»
menggunakan zip-filler adalah ide lain ... yang buruk.R,
2729 byteJawaban alternatif (34 byte) adalah:
cat(rep('**********',10),sep='\n')
sumber
\r
.cat(matrix('*',10,10),fill=10,sep='')
r-fiddlewrite(rep("*",100),"",10,,"")
write(rep("**",50),1,5,,"")
27 byte dan menghindari carriage return pertama.PHP, 32 byte
(varian 32 byte - ditulis dengan
echo
)(varian 33 byte)
(varian 33 byte)
(varian 35 byte)
(varian 38 byte)
sumber
<?=str_repeat("**********↵",10);
echo chunk_split(str_repeat("*",100),10);
The terpanjang sejauh ini, hanya dalam visi saya ini adalah yang cara PHP untuk melakukannya.for(;++$i<111;)echo$i%11?~Õ:~õ;
ataufor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
for(;$i++<110;)echo"*↵"[$i%11<1];
. Dan untuk menambahkan solusi 37 byte ke koleksi bahwa:for(;$i++<110;)echo chr($i%11?42:10);
.MATL , 8 byte
Cobalah online!
sumber
Brainfuck,
4643 byteCobalah online!Membutuhkan juru bahasa dengan pita yang terbuka di sebelah kiri dan memiliki sel 8-bit.
Bagian pertama dari program ini
+[[---<]+[-->]<]
membuat rekaman seperti:Ini menghasilkan 40 untuk menghasilkan tanda bintang (
*
, ASCII 42), 20 untuk digunakan sebagai penghitung lingkaran, dan 10 untuk digunakan untuk menghasilkan baris baru.sumber
JavaScript (ES6), 37 byte
Jawaban langsung.
sumber
alert
?console.log()
dan menentukanREPL
dalam judul.Cheddar,
2120 byteNamun jawaban langsung lainnya.
sumber
->
bukannya cetak mungkin?Haskell, 29 byte
<list1> >> <list2>
membuat(length <list1>)
salinan<list2>
.sumber
R,
353332 byteÔ R,
kadang-kadangAnda sangat bertele-tele .for(i in 1:10)cat(rep("*",10),"\n")
Menariknya,
cat
fungsi tersebut tidak memiliki nilai (ini disediakanNULL
untuk STDOUT), jadi Anda tidak dapat melakukan sesuatu seperti iturep(cat(rep)))
, yang pasti lebih lucu!EDIT:
Solusi baru yang diajukan oleh @LeakyNun, -2 byte.
EDIT: Mempersingkatnya hanya dengan -1 byte, oleh @ user5957401
sumber
for(i in 1:10)"**********\n"
cat
, kalau tidak menghasilkan apa-apa.cat(rep("**********\n",10))
cat
adalah spasi, maka output ini.Retina , 12 byte
Hitungan byte mengasumsikan penyandian ISO 8859-1. Linefeed terkemuka sangat penting.
Tahap pertama menulis string sepuluh tanda bintang, tahap kedua menggantikan setiap tanda bintang dengan seluruh string dan umpan baris. Ini mencetak dua baris feed yang membuntuti.
sumber
J ,
109 byte1 byte terima kasih kepada @ Adám.
Penerjemah online .
Penjelasan
10 10
menentukan dimensi ke operator$
yang membangun array dengan dimensi yang ditentukan.sumber
'*'$~,~10