/* 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>
Respuestas:
Brainfuck , 47 bytes
Pruébalo en línea!
fuente
>.<
>++>
C (gcc),
4139 bytesfuente
main(i){while(11-i++)puts("**********");}
Es una alternativa, de la misma longitud.puts()
(y del valor inicial dei
).Bash + coreutils, 19 bytes
Prefiero repetir cosas en Bash usando 'sí'.
Ahorré 2 bytes por sugerencia de @ Neil. Pero cuando el directorio donde está ejecutando este comando no solo contiene archivos que comienzan con un '.' dot necesita para encerrar las estrellas
*
con"
.Bash + coreutils, 21 bytes
fuente
yes
. Generalmente etiquetamos soluciones como "Bash + coreutils".head
..
?yes \**********|head
sin restricciones en los archivos.Vim,
138 bytesGuardado 5 bytes gracias a @Lynn
10i*␛
inserte 10 veces*
,Y9p
copie la línea y péguela 9 veces.fuente
10i*♥Y9p
trabajos.yy9p
mí mismo, ¡pero buen trabajo usando mayúsculas para salvar a un personaje!Pyth, 6 bytes
T
es 10 en Pyth,Vab
ejecutab
a
tiempos de instrucción ,\*
es la constante de carácter de asterisco y multiplica (*
) una cadena y un entero repite esa cadena n veces. La impresión implícita de Pyth conV
medios se imprimen 10 líneas.fuente
Hexagonia
37353431Expandido:
Pruébalo en línea
Básicamente solo tiene dos para bucles contando desde diez hasta cero, imprimiendo un asterisco en el bucle interno y una nueva línea en el bucle externo.
Explicación:
Este programa consta de tres partes principales: inicialización de la memoria, un bucle que imprime diez asteriscos y un bucle que imprime una nueva línea. El bucle que imprime una nueva línea también contiene el bucle que imprime los asteriscos.
Primero, el código ejecuta la inicialización de memoria totalmente lineal. El código funciona a ser:
10"+}42
. Esto configura la memoria de los bordes cercanos para que se vea así:42 es el código ASCII para el carácter de asterisco, y las dos decenas se utilizarán como nuestros contadores de bucle. Es de destacar que el puntero de memoria está apuntando actualmente lejos de las dos decenas, por lo que moverse hacia atrás nos colocará en una de las decenas.
A continuación, comenzamos el ciclo de impresión de astersisk. Linealmente, el código es el siguiente:
;".._(
. Esto imprime un asterisco, mueve el puntero de memoria hacia atrás y hacia la izquierda y finalmente disminuye el valor allí. Después de una iteración, la memoria se vería así:Luego llegamos a la condición de bucle: el extremo inferior izquierdo
>
. Si el borde que acabamos de disminuir sigue siendo positivo, rebotamos y ejecutamos a{
para movernos de nuevo al 42. Luego golpeamos ay regresamos$
al comienzo del ciclo de impresión;
, saltando el<
. Si el valor era cero, nos dirigimos al otro ciclo.El bucle externo comienza restableciendo el borde de memoria recientemente puesto a cero a diez (este es
10
el código, que va hacia el suroeste). Luego, imprimimos este diez como un carácter ASCII, que es una nueva línea. A continuación, pasamos a la otra orilla de memoria y disminuirlo con{(
y luego ejecutar lo que equivale a un montón de noops:=${_=
. Ahora, después de una iteración de este ciclo, la memoria se vería así:Esta vez, la memoria está mirando hacia afuera desde el borde y almacena un nueve en el diagrama anterior. Luego ejecutamos el
<
que actúa como la condición del bucle para el bucle externo. Si el valor no es cero, rebotamos en algunos espejos, luego comenzamos a ejecutar instrucciones significativas nuevamente después de ingresar a la parte superior del hexágono en el"
suroeste en movimiento. Esto hace que nos movamos hacia atrás y hacia la izquierda, nuevamente a la 42, pero mirando hacia adentro. Luego,=
cambia nuestra dirección, restableciendo el estado correctamente para comenzar el ciclo interno nuevamente. Si el borde se estableció en cero, el puntero de instrucción se embarca en una pequeña aventura que no hace nada hasta que sale del programa.La aventura comienza con el puntero de instrucciones que se aventura hacia el noreste, sin tener en cuenta la seguridad de las direcciones cardinales. Valientemente ignora un espejo que está alineado con su dirección (
/
) y salta heroicamente de un trampolín ($
) evadiendo por completo la trampa mortal de otro trampolín totalmente idéntico. Mirando el vacío de los bordes del hexágono no inicializados, el puntero, sin vacilar por un momento, agrega los dos bordes en blanco que enfrenta, estableciendo el borde actual en su suma: 0 (el borde era en realidad cero de antemano, pero al puntero le gusta creo que esto fue bastante importante). Como el borde es cero, el puntero gira a la izquierda en la bifurcación de la carretera y se adentra en un bosque misterioso (de hexágonos). Allí, se encuentra desorientado, moviéndose hacia adelante y hacia atrás y hacia adelante, hasta que termina en el mismo lugar en la memoria que comenzó. Pensando que el problema debe ser que el borde actual se estableció en cero la última vez, el puntero planta valientemente un1
en el borde actual Entonces, el noble puntero investiga otro camino, uno tendido con ... ¡una trampa! ¡El borde actual se reduce y vuelve a cero! El puntero, aturdido por el sorprendente giro de los acontecimientos, vuelve a tropezar en la trampa y establece el borde actual en negativo. Enfurecido, el puntero intenta regresar al bosque relativamente agradable, solo para darse cuenta de que, dado que el borde actual no es positivo, los caminos han cambiado una vez más y el puntero se encuentra caminando hacia una cueva. Y por una cueva, me refiero a la boca de un gusano hexagonal gigante. Indefenso, el puntero maldice la sexinidad con su último aliento. Además, el programa termina.fuente
Emacs,
108 pulsaciones de teclasF3 C-1 0 * ENTER F4 C-9 F4
Explicación
Gracias a Sean por guardar dos pulsaciones de teclas, sugiriendo reemplazar C-udigitcon C-digit.
fuente
C-u
cuenta como una sola pulsación de tecla, puede eliminar dos pulsaciones escribiendoC-1 C-0
(oM-1 M-0
) en lugar deC-u 1 0
y enC-9
lugar deC-u 9
.F3
C-1
0
*
ENTER
C-1
0
F4
Jalea , 7 bytes
¿Que esta pasando?
Pruébalo en tryitonline
fuente
Ṅ9¡
.”*ẋ⁵Wẋ⁵
.Y
al final para "imprimir este texto exacto"PowerShell,
1412 bytesConstruye una cadena de asteriscos de longitud
10
usando la multiplicación de cadenas. Encapsula eso en parens y lo introduce en el operador de coma para construir una matriz. Utilizamos la multiplicación de matrices para construir una matriz de 10 elementos que consta de ese elemento (es decir, una matriz de cadenas de asterisco de 10 elementos). Eso queda en la tubería, y la salida es implícita (dado que el valor predeterminadoWrite-Output
para una matriz está separado por una nueva línea, lo obtenemos de forma gratuita, gracias a @Joey por la aclaración).Mayores, 14 bytes
Programa completo Bucles de
0
a9
través de unForEach-Object
bucle|%{...}
. En cada iteración, usamos la multiplicación de cadenas para crear una10
cadena de longitud de*
. Esas cadenas resultantes se dejan en la tubería, y la salida al final es implícita (dado que el valor predeterminadoWrite-Output
para una matriz está separado por una nueva línea, lo obtenemos de forma gratuita, gracias a @Joey por la aclaración).fuente
ToString
, se desenrolla y pasa elemento por elemento a Write-Output. En contextos donde la matriz se convierte en una cadena, obtiene sus elementos separados por espacios.V , 7 bytes
Pruébalo en línea!
Tan simple como puede ser una respuesta.
Explicación:
Versión no competitiva (5 bytes):
Explicación:
Esto no funcionó cuando se publicó el desafío debido a un error.
fuente
E9
yC4
respectivamente.Medusa ,
1210 bytesGracias a Zgarb por guardar 2 bytes.
Pruébalo en línea!
Explicación
Usando notación más convencional, este programa representa la siguiente expresión:
&;
toma un solo valor y crea un par con dos veces ese valor, así&;(10)
que nos da[10 10]
. Luego$
se reforma la forma que forma una cuadrícula de asteriscos de 10x10. Finalmente,P
imprime la matriz en "formato de matriz" que imprime cada cadena en su propia línea.fuente
HTML y CSS,
10460 bytesNo estoy seguro si el recuento de bytes es correcto (ya que no estoy contando las
<style>
etiquetas para CSS. El HTML también podría acortarse si utilizo un preprocesador HTML, pero no estoy seguro si eso está infringiendo las reglasGracias a manatwork y Business Cat.
Mira mi entrada de Jade de 36 bytes
fuente
/
y escribir todas las etiquetas en la misma línea. Pero mejor cambie las etiquetas a<p>
ya que es más corto, incluso si necesita agregarp{margin:0}
.>
que creoPython 2,
2221 bytesfuente
print(("*"*10+'\n')*10)
trabajó para mi.print
.MATLAB, 14 bytes
fuente
*
s.mat
sugiere una matriz, por eso pregunté.APL , 9 bytes
Funciona en todas las APL jamás realizadas.
10 10
diez filas y diez columnas⍴
cíclicamente r epeating'*'
una estrellaTryAPL en línea!
fuente
∘.⊢⍨⍕⍨,⍨5
Java 7, 63 bytes
Sólo por diversión. Parece que no puedo encontrar ningún truco para hacer esto más corto. Intentar agregar lógica para un bucle de 100 o devolver una cadena en lugar de imprimir simplemente termina peor.
fuente
i
como una variable de clase (por defecto0
):int i;void f(){for(;i++<10;)System.out.println("**********");}
i=0
algo en la función, negando los ahorros.int i=10;void f(){System.out.println("**********");if(i-->0)g();}
; Uno por uno recursivo es de 67 bytes:int i=99;void f(){System.out.print(i%10<1?"*\n":"*");if(i-->0)g();}
; Usando String-constructor con char-matriz es de 82 bytes:void g(){System.out.print(new String(new char[10]).replace("\0","**********\n"));}
; y una String.Format es de 81 bytes:void g(){System.out.print(String.format("%010d",0).replace("0","**********\n"));}
. Ah bueno, lo intentamos. ;)Ruby, 15 caracteres.
Ejecución de muestra:
fuente
?**10
? De hecho, crea una cadena de diez asteriscos, pero no tengo claro cómo ...?
es la notación literal de caracteres, entonces?* == '*'
. El segundo*
es elString.*
método , entonces?**10 == '*'.*(10)
.?
es la notación literal de algo, pero quizás algunas preguntas se dejen sin respuesta. ;)?
marca seguida por el carácter, sin requerir un par de cierre de la?
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:
Bloc de notas,
3431 pulsaciones de teclas^ denota Ctrl- <siguiente carácter> pulsación de tecla, ↑ ↓ son teclas arriba y abajo, respectivamente.
Atrezzo a Crypto para 3 pulsaciones de teclas guardadas.
fuente
**********↵^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
Explicación:
fuente
05AB1E, 7 bytes
Explicación
Pruébalo en línea
fuente
т'*×Tô»
es otro completamente diferente jajaja.TLú'*ζ»
usar el zip-filler era otra idea ... aunque mala.R,
2729 bytesUna respuesta alternativa (34 bytes) es:
cat(rep('**********',10),sep='\n')
fuente
\r
.cat(matrix('*',10,10),fill=10,sep='')
r-fiddlewrite(rep("*",100),"",10,,"")
write(rep("**",50),1,5,,"")
tiene 27 bytes y evita el primer retorno de carro.PHP, 32 bytes
(variante 32 bytes - se escribió con
echo
)(variante 33 bytes)
(variante 33 bytes)
(variante 35 bytes)
(variante 38 bytes)
fuente
<?=str_repeat("**********↵",10);
echo chunk_split(str_repeat("*",100),10);
la más larga hasta ahora, solo en mi visión, esta es la forma de PHP para hacerlo.for(;++$i<111;)echo$i%11?~Õ:~õ;
ofor(;++$i<11;)echo~ÕÕÕÕÕÕÕÕÕÕõ;
for(;$i++<110;)echo"*↵"[$i%11<1];
. Y añadir una solución de 37 bytes a esa colección:for(;$i++<110;)echo chr($i%11?42:10);
.MATL , 8 bytes
Pruébalo en línea!
fuente
Brainfuck,
4643 bytesPruébalo en línea! Requiere un intérprete con una cinta abierta a la izquierda y con celdas de 8 bits.
La primera parte de este programa
+[[---<]+[-->]<]
configura la cinta así:Esto da un 40 para generar asteriscos (
*
ASCII 42), un 20 para usar como contador de bucle y un 10 para usar para generar nuevas líneas.fuente
JavaScript (ES6), 37 bytes
Una respuesta directa.
fuente
alert
?console.log()
y especificandoREPL
en el título.Cheddar,
2120 bytesOtra respuesta más directa.
fuente
->
lugar de imprimir tal vez?Haskell, 29 bytes
<list1> >> <list2>
hace(length <list1>)
copias de<list2>
.fuente
R,
353332 bytesÔ R, eres tan prolijo a
veces.for(i in 1:10)cat(rep("*",10),"\n")
Curiosamente, la
cat
función no tiene valor (proporcionaNULL
a STDOUT), por lo que no puede hacer algo asírep(cat(rep)))
, ¡lo que hubiera sido más divertido!EDITAR:
Nueva solución propuesta por @LeakyNun, -2 bytes.
EDITAR: acortándolo solo por -1 byte, por @ user5957401
fuente
for(i in 1:10)"**********\n"
cat
sin embargo, de lo contrario no produce nada.cat(rep("**********\n",10))
cat
es un espacio, de ahí esta salida.Retina , 12 bytes
El recuento de bytes asume la codificación ISO 8859-1. El avance de línea principal es significativo.
La primera etapa escribe una cadena de diez asteriscos, la segunda etapa reemplaza cada asterisco con la cadena completa y un salto de línea. Esto imprime dos avances de línea finales.
fuente
J ,
109 bytes1 byte gracias a @ Adám.
Intérprete en línea .
Explicación
10 10
especifica la dimensión al operador$
que construye una matriz con las dimensiones especificadas.fuente
'*'$~,~10