/* 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>
Réponses:
Brainfuck , 47 octets
Essayez-le en ligne!
la source
>.<
>++>
C (gcc),
4139 octetsla source
main(i){while(11-i++)puts("**********");}
est une alternative, même longueur.puts()
(et de la valeur initiale dei
).Bash + coreutils, 19 octets
Je préfère répéter des choses dans Bash en utilisant «oui».
J'ai enregistré 2 octets par la suggestion de @ Neil. Mais lorsque le répertoire dans lequel vous exécutez cette commande ne contient pas que des fichiers commençant par un '.' dot que vous devez joindre les étoiles
*
avec"
.Bash + coreutils, 21 octets
la source
yes
. Nous étiquetons généralement des solutions telles que «Bash + coreutils».head
..
?yes \**********|head
sans restriction sur les fichiers.Vim,
13 à8 octets5 octets sauvegardés grâce à @Lynn
10i*␛
insérez 10 fois*
,Y9p
copiez la ligne et collez-la 9 fois.la source
10i*♥Y9p
travaux.yy9p
moi-même, mais bon travail en utilisant des majuscules pour sauver un personnage!Pyth, 6 octets
T
est 10 en Pyth,Vab
exécute lesb
a
temps d' instruction ,\*
est la constante de caractère astérisque, et multiplie (*
) une chaîne et un entier répète cette chaîne n fois. L'impression implicite avec PythV
signifie que 10 lignes sont imprimées.la source
Hexagone,
37353431Étendu:
Essayez-le en ligne
Fondamentalement, il n’ya que deux boucles for, le décompte allant de 10 à zéro, l’impression d’un astérisque sur la boucle interne et une nouvelle ligne sur la boucle externe.
Explication:
Ce programme comprend trois parties principales: l’initialisation de la mémoire, une boucle imprimant dix astérisques et une boucle imprimant une nouvelle ligne. La boucle qui imprime une nouvelle ligne contient également la boucle qui affiche les astérisques.
Tout d'abord, le code exécute l'initialisation de la mémoire totalement linéaire. Le code fonctionne comme:
10"+}42
. Ceci configure la mémoire des bords proches pour ressembler à:42 est le code ASCII du caractère astérisque et les deux dizaines seront utilisés comme compteurs de boucle. Il est à noter que le pointeur de la mémoire est actuellement orienté à l’écart des deux dizaines. Par conséquent, le fait de revenir en arrière nous place sur l’un des dizaines.
Ensuite, nous commençons la boucle d'impression astersisque. Linéairement, le code ressemble à :
;".._(
. Cela affiche un astérisque, déplace le pointeur de la mémoire en arrière et à gauche et décrémente la valeur à cet endroit. Après une itération, la mémoire ressemblerait à ceci:Ensuite, nous atteignons la condition de boucle: la plus en bas à gauche
>
. Si le bord que nous venons de décrémenter est toujours positif, nous rebondissons et exécutons un{
pour nous ramener sur le 42. Puis nous frappons un$
et retournons au début de la boucle d'impression;
, en sautant le<
. Si la valeur était zéro, nous nous dirigeons dans l'autre boucle.La boucle externe commence par réinitialiser le bord de mémoire récemment remis à zéro à dix (il s'agit
10
du code dans le code sud-ouest). Ensuite, nous imprimons ce dix comme un caractère ASCII, qui est une nouvelle ligne. Ensuite, nous passons sur l'autre bord de la mémoire et le décrémentez avec{(
puis exécutons ce qui équivaut à un tas de noops:=${_=
. Maintenant, après une itération de cette boucle, la mémoire ressemblerait à ceci:Cette fois, la mémoire est tournée vers l’extérieur du bord, stockant un neuf dans le diagramme ci-dessus. Ensuite, nous exécutons le
<
qui agit comme condition de boucle pour la boucle externe. Si la valeur était différente de zéro, nous rebondissons sur certains miroirs, puis nous recommençons à exécuter des instructions significatives après être entré au sommet de l'hexagone au"
sud-ouest en mouvement. Cela nous oblige à reculer et à gauche, à nouveau sur le 42, mais vers l'intérieur. Ensuite, l’=
inversion de notre direction, réinitialisant l’état correctement pour que la boucle interne recommence. Si le bord a été mis à zéro, le pointeur d'instruction se lance dans une petite aventure qui ne fait rien jusqu'à ce qu'il quitte le programme.L'aventure commence par le pointeur d'instructions se dirigeant vers le nord-est, ignorant dangereusement la sécurité des points cardinaux. Il ignore courageusement un miroir aligné sur sa diretion (
/
) et saute héroïquement d'un trampoline ($
) évitant entièrement le piège mortel d'un autre trampoline totalement identique. En regardant le vide des bords hexagonaux non initialisés, le pointeur, sans faiblir un instant, ajoute les deux bords vides qu'il fait face ensemble, fixant ainsi le bord actuel à leur somme: 0 (le bord était en fait nul auparavant, mais le pointeur aime crois que c'était assez important). Comme le bord est égal à zéro, le pointeur tourne à gauche à l'embranchement de la route et entre dans une forêt mystérieuse (d'hexagones). Là, il se trouve désorienté, allant d’avant en arrière, jusqu’à ce qu’il se retrouve au même endroit dans sa mémoire de départ. Pensant que le problème doit être que le bord actuel a été réglé à zéro la dernière fois, le pointeur plante bravement une1
dans le bord actuel. Ensuite, le noble pointeur explore un autre chemin, un avec: un piège! Le front actuel est décrémenté et remis à zéro! Le pointeur, hébété par la tournure choquante des événements, retombe dans le piège en définissant le bord actuel sur négatif. En colère, le pointeur tente de retourner dans la forêt relativement agréable, mais remarque que, le bord actuel n'étant pas positif, les chemins se sont à nouveau déplacés et le pointeur se retrouve dans une grotte. Et par une grotte, je veux dire la bouche d'un ver géant hexagonal. Impuissant, le pointeur maudit la sexualité avec son dernier souffle. En outre, le programme se termine.la source
Emacs,
10 à8 frappesF3 C-1 0 * ENTER F4 C-9 F4
Explication
Merci à Sean pour avoir sauvé deux frappes de touche, suggérant de remplacer C-udigitpar C-digit.
la source
C-u
compte que pour une seule frappe, vous pouvez supprimer deux traits en tapantC-1 C-0
(ouM-1 M-0
) au lieu deC-u 1 0
etC-9
au lieu deC-u 9
.F3
C-1
0
*
ENTER
C-1
0
F4
Gelée , 7 octets
Que se passe-t-il?
Testez-le sur tryitonline
la source
Ṅ9¡
.”*ẋ⁵Wẋ⁵
.Y
sur la fin pour "imprimer ce texte exact"PowerShell,
1412 octetsConstruit une chaîne d'astérisques de longueur à l'
10
aide de la multiplication de chaîne. Encapsule cela dans parens et alimente cela dans l'opérateur de virgule pour construire un tableau. Nous utilisons la multiplication de tableau pour construire un tableau de 10 éléments constitué de cet élément (c’est-à-dire un tableau de chaînes astérisque de 10 éléments). Cela reste sur le pipeline et la sortie est implicite (puisque la valeurWrite-Output
par défaut pour un tableau est séparée par une nouvelle ligne, nous l'obtenons gratuitement - merci à @Joey pour la clarification).Plus ancien, 14 octets
Programme complet. Boucles de
0
à9
travers uneForEach-Object
boucle|%{...}
. À chaque itération, nous utilisons la multiplication de chaînes pour créer une10
chaîne de longueur de*
. Les chaînes résultantes sont laissées dans le pipeline et la sortie à la fin est implicite (étant donné que la valeurWrite-Output
par défaut pour un tableau est séparée par des lignes, nous l'obtenons gratuitement - grâce à @Joey pour la clarification).la source
ToString
élément, il est déroulé et passé élément par élément à Write-Output. Dans les contextes où le tableau est converti en chaîne, ses éléments sont séparés par des espaces.V , 7 octets
Essayez-le en ligne!
À peu près aussi simple qu'une réponse peut être.
Explication:
Version non concurrente (5 octets):
Explication:
Cela n'a pas fonctionné lorsque le défi a été posté à cause d'un bogue.
la source
E9
etC4
respectivement.Méduse ,
12 à10 octetsMerci à Zgarb d’avoir économisé 2 octets.
Essayez-le en ligne!
Explication
En utilisant une notation plus conventionnelle, ce programme représente l'expression suivante:
&;
prend une seule valeur et crée une paire avec deux fois cette valeur,&;(10)
nous donne donc[10 10]
. Ensuite,$
reshape forme une grille d’astérisques 10x10. Enfin,P
affiche le tableau au "format matrice" qui imprime chaque chaîne sur sa propre ligne.la source
HTML et CSS,
10460 octetsJe ne sais pas si le nombre d'octets est correct (car je ne compte pas les
<style>
balises pour CSS. Le code HTML pourrait également être raccourci si j'utilisais un préprocesseur HTML, mais je ne suis pas sûr qu'il s'agisse d'enfreindre les règles.Merci à manatwork et Business Cat.
Voir mon entrée Jade de 36 octets
la source
/
et écrire toutes les balises dans la même ligne. Mais il vaut mieux changer les balises en<p>
car c'est plus court même si vous avez besoin d'ajouterp{margin:0}
.>
je croisPython 2,
2221 octetsla source
print(("*"*10+'\n')*10)
a travaillé pour moi.print
.MATLAB, 14 octets
la source
*
s.mat
suggère une matrice, c'est pourquoi j'ai demandé.APL , 9 octets
Fonctionne sur tous les APL jamais réalisés.
10 10
dix lignes et dix colonnes⍴
cyclique r épéter'*'
une étoileTryAPL en ligne!
la source
∘.⊢⍨⍕⍨,⍨5
Java 7, 63 octets
Juste pour le plaisir. Je n'arrive pas à trouver des astuces pour rendre cela plus court. Essayer d'ajouter une logique pour une boucle de 100 ou de renvoyer une chaîne au lieu d'une impression ne fait qu'empirer les choses.
la source
i
comme variable de classe (sa valeur par défaut est0
):int i;void f(){for(;i++<10;)System.out.println("**********");}
i=0
quelque part dans la fonction, annulant ainsi les économies réalisées.int i=10;void f(){System.out.println("**********");if(i-->0)g();}
; Un par un récursif est de 67 octets:int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}
; L' utilisation String-constructeur avec char-tableau est de 82 octets:void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}
; et un String.format est de 81 octets:void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}
. Ah bon, on a essayé. ;)Ruby, 15 personnages
Échantillon échantillon:
la source
?**10
? Il crée effectivement une chaîne de dix astérisques, mais je ne sais pas comment ...?
est la notation littérale des caractères, donc?* == '*'
. La 2ème*
est laString.*
méthode , donc?**10 == '*'.*(10)
.?
la notation littérale de quoi que ce soit, mais il est peut-être préférable de laisser certaines questions sans réponse. ;)?
marque suivie du caractère, sans nécessiter une paire de fermeture de la?
marque.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:
Bloc-notes,
34 à31 frappes^ indique que vous appuyez sur les touches Ctrl- <caractère suivant>, ↑ up sont respectivement les touches haut et bas.
Accessoires pour Crypto pour 3 frappes enregistrées.
la source
**********↵^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 octets
Explication:
la source
05AB1E, 7 octets
Explication
Essayez-le en ligne
la source
т'*×Tô»
est un autre complètement différent lol.TLú'*ζ»
utiliser le zip-filler était une autre idée ... mauvaise.R,
2729 octetsUne autre réponse (34 octets) est:
cat(rep('**********',10),sep='\n')
la source
\r
.cat(matrix('*',10,10),fill=10,sep='')
r-fiddlewrite(rep("*",100),"",10,,"")
write(rep("**",50),1,5,,"")
est 27 octets et évite le premier retour de chariot.PHP, 32 octets
(variante 32 octets - a été écrit avec
echo
)(variante 33 octets)
(variante 33 octets)
(variante 35 octets)
(variante 38 octets)
la source
<?=str_repeat("**********↵",10);
echo chunk_split(str_repeat("*",100),10);
la plus longue jusqu’à présent, à mon avis, c’est la façon de procéder de PHP.for(;++$i<111;)echo$i%11?~Õ:~õ;
oufor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
for(;$i++<110;)echo"*↵"[$i%11<1];
. Et d'ajouter une solution 37 octets à cette collection:for(;$i++<110;)echo chr($i%11?42:10);
.MATL , 8 octets
Essayez-le en ligne!
la source
Brainfuck,
4643 octetsEssayez-le en ligne! Nécessite un interprète avec une bande ouverte à gauche et dotée de cellules 8 bits.
La première partie de ce programme
+[[---<]+[-->]<]
installe la bande comme suit:Cela donne un 40 pour la sortie des astérisques (
*
, ASCII 42), un 20 à utiliser comme compteur de boucle et un 10 à utiliser pour la sortie des nouvelles lignes.la source
JavaScript (ES6), 37 octets
Une réponse simple.
la source
alert
?console.log()
et en spécifiantREPL
dans le titre.Cheddar,
21 à20 octetsEncore une réponse simple.
la source
->
au lieu d'imprimer peut-être?Haskell, 29 octets
<list1> >> <list2>
fait des(length <list1>)
copies de<list2>
.la source
R,
353332 octetsÔ R, tu es tellement bavard
parfois.for(i in 1:10)cat(rep("*",10),"\n")
Fait intéressant, la
cat
fonction n'a aucune valeur (elle fournitNULL
à STDOUT), vous ne pouvez donc pas faire quelque chose commerep(cat(rep)))
, ce qui aurait été plus drôle!EDIT:
Nouvelle solution proposée par @LeakyNun, -2 octets.
EDIT: Raccourcissez-le juste par -1 octet, par @ user5957401
la source
for(i in 1:10)"**********\n"
cat
tout de même, sinon ça ne produit rien.cat(rep("**********\n",10))
cat
est un espace, d’où cette sortie.Rétine , 12 octets
Le nombre d'octets suppose un codage ISO 8859-1. Le premier saut de ligne est significatif.
La première étape écrit une chaîne de dix astérisques, la deuxième étape remplace chaque astérisque par la chaîne complète et un saut de ligne. Ceci imprime deux sauts de ligne de fin.
la source
J ,
109 octets1 octet grâce à @ Adám.
Interprète en ligne .
Explication
10 10
spécifie la dimension de l'opérateur$
qui construit un tableau avec les dimensions spécifiées.la source
'*'$~,~10