/* 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>
Respostas:
Brainfuck , 47 bytes
Experimente online!
fonte
>.<
>++>
C (gcc),
4139 bytesfonte
main(i){while(11-i++)puts("**********");}
é uma alternativa, mesmo comprimento.puts()
(e do valor inicial dei
).Bash + coreutils, 19 bytes
Prefiro repetir coisas no Bash usando 'yes'.
Eu salvei 2 bytes por sugestão de @ Neil. Mas quando o diretório em que você está executando este comando não contém apenas arquivos começando com um '.' dot você precisa colocar as estrelas
*
com"
.Bash + coreutils, 21 bytes
fonte
yes
. Normalmente, rotulamos soluções como "Bash + coreutils".head
..
?yes \**********|head
sem a restrição de arquivos.Vim,
138 bytesGuardado 5 bytes graças a @Lynn
10i*␛
insira 10 vezes*
,Y9p
copie a linha e cole 9 vezes.fonte
10i*♥Y9p
trabalho.yy9p
me usado , mas bom trabalho usando letras maiúsculas para salvar um personagem!Pitão, 6 bytes
T
é 10 em Pyth,Vab
executab
a
tempos de instrução ,\*
é a constante de caractere asterisco e multiplica (*
) uma string e um número inteiro repete essa string n vezes. A impressão implícita de Pyth comV
meios 10 linhas é impressa.fonte
Hexagony,
37.353431Expandido:
Experimente online
Basicamente, existem apenas dois para loops, contando de dez a zero, imprimindo um asterisco no loop interno e uma nova linha no loop externo.
Explicação:
Este programa consiste em três partes principais: inicialização da memória, um loop que imprime dez asteriscos e um loop que imprime uma nova linha. O loop que imprime uma nova linha também contém o loop que imprime os asteriscos.
Primeiro, o código executa a inicialização da memória totalmente linear. O código trabalha-se:
10"+}42
. Isso define a memória das bordas próximas para se parecer com:42 é o código ASCII para o caractere asterisco e as duas dezenas serão usadas como nossos contadores de loop. É digno de nota que o ponteiro da memória está atualmente apontando para fora das duas dezenas, portanto, retroceder nos colocará em uma das dezenas.
Em seguida, iniciamos o ciclo de impressão astersisk. Linearmente, o código se parece com:
;".._(
. Isso imprime um asterisco, move o ponteiro da memória para trás e para a esquerda e, finalmente, diminui o valor lá. Após uma iteração, a memória seria semelhante a:Então atingimos a condição do loop: o canto inferior esquerdo
>
. Se a borda que acabamos de decrescer ainda é positiva, pulamos e executamos a{
para nos mover de volta para a 42. Em seguida, pressionamos a$
e retornamos ao início do ciclo de impressão;
, pulando o<
. Se o valor for zero, vamos para o outro loop.O loop externo começa redefinindo a borda da memória recentemente zerada para dez (este é
10
o código, indo para sudoeste). Em seguida, imprimimos esses dez como um caractere ASCII, que é uma nova linha. Em seguida, vamos passar para a outra margem memória e diminui-lo com{(
e, em seguida, executar o que equivale a um monte de noops:=${_=
. Agora, após uma iteração desse loop, a memória seria semelhante a:Desta vez, a memória está voltada para fora a partir da borda, armazenando nove no diagrama acima. Em seguida, executamos o
<
que atua como condição do loop externo. Se o valor for diferente de zero, saltaremos de alguns espelhos e começaremos a executar instruções significativas novamente depois de entrar no topo do hexágono no"
sudoeste em movimento. Isso nos leva a recuar e a esquerda para os 42 novamente, mas voltados para dentro. Então ele=
vira em nossa direção, redefinindo o estado adequadamente para iniciar o loop interno novamente. Se a borda foi ajustada para zero, o ponteiro de instruções inicia uma pequena aventura que não faz nada até sair do programa.A aventura começa com o ponteiro de instruções que se dirige para o nordeste, desconsiderando perigosamente a segurança das direções cardeais. Corajosamente ignora um espelho que está alinhado com sua direção (
/
) e heroicamente salta de um trampolim ($
) escapando inteiramente da armadilha mortal de outro trampolim totalmente idêntico. Observando o vazio das arestas hexagonais não inicializadas, o ponteiro, sem hesitar por um momento, adiciona as duas arestas em branco que enfrenta, definindo a aresta atual em sua soma: 0 (a aresta era realmente zero antes, mas o ponteiro gosta de acredite que isso foi muito importante). Como a margem é zero, o ponteiro faz uma curva à esquerda na bifurcação da estrada, entrando em uma floresta misteriosa (de hexágonos). Lá, ele se vê desorientado, movendo-se para frente e para trás e para frente, até acabar no mesmo lugar na memória que começou. Pensando que o problema deve ser que a borda atual foi zerada da última vez, o ponteiro bravamente planta um1
na borda atual. Então, o apontador nobre investiga outro caminho, um colocado com ... uma armadilha! A aresta atual é decrementada e volta a zero! O ponteiro, atordoado pela reviravolta chocante dos eventos, volta a tropeçar na armadilha, colocando a borda atual em negativa. Enfurecido, o ponteiro tenta retornar à floresta relativamente agradável, apenas para perceber que, como a borda atual não é positiva, os caminhos mudaram novamente e o ponteiro se vê entrando em uma caverna. E por uma caverna, quero dizer a boca de um verme hexagonal gigante. Desamparado, o ponteiro amaldiçoa a sexualidade com seu hálito moribundo. Além disso, o programa termina.fonte
Emacs,
108 pressionamentos de teclaF3 C-1 0 * ENTER F4 C-9 F4
Explicação
Agradecemos a Sean por salvar duas teclas pressionadas, sugerindo a substituição C-udigitpor C-digit.
fonte
C-u
conta apenas como um toque de tecla, você pode cortar dois traços digitandoC-1 C-0
(ouM-1 M-0
) em vez deC-u 1 0
e emC-9
vez deC-u 9
.F3
C-1
0
*
ENTER
C-1
0
F4
Geléia , 7 bytes
O que está acontecendo?
Teste em tryitonline
fonte
Ṅ9¡
.”*ẋ⁵Wẋ⁵
.Y
no final para "imprimir este texto exato"PowerShell,
1412 bytesConstrói uma cadeia de asteriscos de comprimento
10
usando a multiplicação de cadeias. Encapsula isso em parens e alimenta isso no operador de vírgula para construir uma matriz. Usamos multiplicação de array para construir um array de 10 elementos que consiste nesse elemento (ou seja, um array de 10 elementos de seqüências de caracteres de asterisco). Isso é deixado no pipeline e a saída é implícita (como o padrãoWrite-Output
para uma matriz é separado por nova linha, obtemos isso de graça - graças a @Joey pelo esclarecimento).Mais antigo, 14 bytes
Programa completo. Loops de
0
para9
através de umForEach-Object
loop|%{...}
. A cada iteração, usamos a multiplicação de cadeias para criar uma10
cadeia de comprimento de*
. Essas seqüências resultantes são deixadas no pipeline e a saída no final é implícita (como o padrãoWrite-Output
para uma matriz é separado por nova linha, obtemos isso de graça - graças a @Joey pelo esclarecimento).fonte
ToString
, é desenrolado e passado elemento a elemento para Write-Output. Nos contextos em que a matriz é convertida em uma sequência, você obtém seus elementos separados por espaço.V , 7 bytes
Experimente online!
Tão simples quanto uma resposta pode ser.
Explicação:
Versão não concorrente (5 bytes):
Explicação:
Isso não funcionou quando o desafio foi lançado devido a um bug.
fonte
E9
eC4
respectivamente.Água-viva ,
1210 bytesObrigado ao Zgarb por salvar 2 bytes.
Experimente online!
Explicação
Usando notação mais convencional, este programa representa a seguinte expressão:
&;
pega um único valor e cria um par com duas vezes esse valor, o que&;(10)
nos dá[10 10]
. Em seguida,$
é remodelado, o que forma uma grade de 10x10 de asteriscos. Por fim,P
imprime a matriz em "formato de matriz", que imprime cada sequência em sua própria linha.fonte
HTML e CSS,
10460 bytesNão tenho certeza se a contagem de bytes está correta (como não estou contando as
<style>
tags para CSS. O HTML também pode ser reduzido se eu usar um pré-processador HTML, mas não tenho certeza se isso está violando as regrasGraças a manatwork e Business Cat.
Veja minha entrada Jade de 36 bytes
fonte
/
escrever todas as tags na mesma linha. Mas é melhor alterar as tags para<p>
que sejam mais curtas, mesmo que você precise adicionarp{margin:0}
.>
eu acreditoPython 2,
2221 bytesfonte
print(("*"*10+'\n')*10)
trabalhou para mim.print
.MATLAB, 14 bytes
fonte
*
s.mat
sugere uma matriz, foi por isso que perguntei.APL , 9 bytes
Funciona em todos os APLs já feitos.
10 10
dez linhas e dez colunas⍴
ciclicamente r epeating'*'
uma estrelaTryAPL online!
fonte
∘.⊢⍨⍕⍨,⍨5
Java 7, 63 bytes
Apenas por diversão. Não consigo encontrar nenhum truque para tornar isso mais curto. Tentar adicionar lógica para um loop de 100 ou retornar uma String em vez de imprimir apenas acaba pior.
fonte
i
como uma variável de classe (o padrão é0
)::int i;void f(){for(;i++<10;)System.out.println("**********");}
i=0
da função, negando a economia.int i=10;void f(){System.out.println("**********");if(i-->0)g();}
; Um por um recursiva é de 67 bytes:int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}
; Usando String-construtor com carbonizar-matriz é de 82 bytes:void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}
; e um String.format é de 81 bytes:void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}
. Ah, bem, nós tentamos. ;)Ruby, 15 caracteres
Exemplo de execução:
fonte
?**10
? É, de fato, criar uma série de dez asteriscos, mas tenho claro como ...?
notação literal é o caractere, então?* == '*'
. O segundo*
é oString.*
método , então?**10 == '*'.*(10)
.?
está a notação literal de alguma coisa, mas talvez seja melhor deixar algumas perguntas sem resposta. ;)?
marca seguida pelo caractere, sem a necessidade de um par de fechamento da?
marca.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:
Bloco de notas,
3431 pressionamentos de tecla^ indica Ctrl- <caractere seguinte> pressionamento de tecla, ↑ ↓ são teclas para cima e para baixo, respectivamente.
Adota o Crypto por 3 pressionamentos de tecla salvos.
fonte
**********↵^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 bytes
Explicação:
fonte
05AB1E, 7 bytes
Explicação
Experimente online
fonte
т'*×Tô»
é outra completamente diferente lol.TLú'*ζ»
usar o zip-filler foi outra idéia ... ruim.R,
2729 bytesUma resposta alternativa (34 bytes) é:
cat(rep('**********',10),sep='\n')
fonte
\r
.cat(matrix('*',10,10),fill=10,sep='')
r-fiddlewrite(rep("*",100),"",10,,"")
write(rep("**",50),1,5,,"")
tem 27 bytes e evita o primeiro retorno de carro.PHP, 32 bytes
(variante 32 bytes - foi escrita com
echo
)(variante 33 bytes)
(variante 33 bytes)
(variante 35 bytes)
(variante 38 bytes)
fonte
<?=str_repeat("**********↵",10);
echo chunk_split(str_repeat("*",100),10);
a mais longa até agora, apenas na minha visão, essa é a maneira do PHP fazer isso.for(;++$i<111;)echo$i%11?~Õ:~õ;
oufor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
for(;$i++<110;)echo"*↵"[$i%11<1];
. E para adicionar uma solução de 37 bytes a essa coleção:for(;$i++<110;)echo chr($i%11?42:10);
.MATL , 8 bytes
Experimente online!
fonte
Brainfuck,
4643 bytesExperimente online! Requer um intérprete com uma fita aberta à esquerda e com células de 8 bits.
A primeira parte deste programa
+[[---<]+[-->]<]
configura a fita da seguinte forma:Isso fornece 40 para a saída de asteriscos (
*
ASCII 42), 20 para usar como contador de loop e 10 para a saída de novas linhas.fonte
JavaScript (ES6), 37 bytes
Uma resposta direta.
fonte
alert
?console.log()
e especificandoREPL
no título.Queijo Cheddar,
2120 bytesMais uma resposta direta.
fonte
->
vez de imprimir, talvez?Haskell, 29 bytes
<list1> >> <list2>
faz(length <list1>)
cópias de<list2>
.fonte
R,
353332 bytesÔ R,
às vezesvocê é tão detalhado .for(i in 1:10)cat(rep("*",10),"\n")
Curiosamente, a
cat
função não tem valor (forneceNULL
STDOUT), então você não pode fazer algo parecidorep(cat(rep)))
, o que seria mais engraçado!EDIT:
Nova solução proposta por @LeakyNun, -2 bytes.
EDIT: Encurtando-o apenas por -1 byte, por @ user5957401
fonte
for(i in 1:10)"**********\n"
cat
, no entanto, caso contrário, não produz nada.cat(rep("**********\n",10))
cat
é um espaço, portanto, esta saída.Retina , 12 bytes
A contagem de bytes assume a codificação ISO 8859-1. O avanço de linha principal é significativo.
O primeiro estágio grava uma sequência de dez asteriscos, o segundo estágio substitui cada asterisco pela sequência inteira e um avanço de linha. Isso imprime dois feeds de linha à direita.
fonte
J ,
109 bytes1 byte graças a @ Adám.
Intérprete online .
Explicação
10 10
especifica a dimensão para o operador$
que cria uma matriz com as dimensões especificadas.fonte
'*'$~,~10