Basado en esto: ¡Hazme un cuadrado!
Necesita dar salida a esto:
####
# # #
### #
# # #
####
Donde "#" se reemplaza con la entrada.
Si ingresa "A", debería obtener
AAAA
A A A
AAA A
A A A
AAAA
Si ingresa "&", debería obtener
&&&&
& & &
&&& &
& & &
&&&&
Tabla de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
/* Configuration */
var QUESTION_ID = 121651; // 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>
B³S‖O↗
Sin embargo, es muy posible que esté cerca de una respuesta de 10 bytes en el carbón ... Simplemente no conozco el idioma lo suficientemente bien como para hacerlo, realmente debe haber una página como esta, pero para el carbón.Respuestas:
Zanahoria , 31 bytes
#
s son reemplazados por la entrada.Básicamente un puerto de esta respuesta , a este problema.
fuente
05AB1E ,
1615 bytesPruébalo en línea!
Explicación
fuente
•nxвΛ•bTRð¹ì‡6ô»
... los ritmos tuyos transliteran ligeramente, solo debido a los requisitos de pedido; Si pudiera encontrar una manera de tomar implícitamente la entrada y generar la cadena01
en 1 byte, esta sería una solución de 13/14 bytes.•nxвΛ•bT𹫇6ô»
oð«T•nxвΛ•br‡6ô»
tiene la misma longitud.Cubix , 62 bytes
Pruébalo en línea! y mira al intérprete!
Esto cabe en un cubo de 4:
No soy muy bueno manipulando la dirección del puntero de instrucciones, por lo que continuaré intentando jugar golf. Tanto esto como mi respuesta aquí se basan en el "¡Hola, mundo!" programa de ejemplo que utiliza
./v.o;@?/
(en un cubo de 3) para imprimir y reventar los caracteres en la pila de forma recursiva, de modo que el resto del código simplemente empuja los caracteres hacia la pila en el orden correcto.Ahora he hecho un cubo sobre un cubo, así puedo descansar tranquilo (y hacer mi trabajo real).
fuente
SOGL ,
1310 bytesExplicación:
fuente
MATL ,
1310 bytesGracias a Conor O'Brien por eliminar 3 bytes y por mostrarme que no se pueden imprimir en Octave.
El código contiene caracteres no imprimibles. Pruébalo en línea!
Explicación
fuente
echo 0f15392a3c|xxd -r -p|clip
. En windows,clip
es el portapapeles. Luego los acabo de pegar: P (si estás en una línea de comando, también lo está^O^U
)PHP, 52 bytes
Pruébalo en línea!
fuente
Japt , 20 bytes
¡Pruébalo en línea!
No está mal para un idioma sin compresión incorporada (bueno, excepto la compresión de cadenas de letras minúsculas) ...
Explicación
En binario, los cinco caracteres en la cadena son:
Corta la inicial
1
de cada uno, y obtienes el patrón para el cubo.fuente
ll
se puede comprimir), pero es 11 bytes más largo.LOLCODE,
202170 bytesEn LOLCODE, no mucho para jugar golf ...
Esto establece la variable
c
en la entrada y crea una cadena concatenada gigante que incluye:)
nuevas líneas. Eso es todo.fuente
expected HAI at: I
tio.run/nexus/…VISIBLE
concatena implícitamente, por lo que puede eliminarSMOOSH
tio.run/nexus/lolcode#@@/…Sed, 40 caracteres
Casi haciendo trampa ya que la descripción del desafío lo contenía casi literalmente.
Ejecución de muestra:
Pruébalo en línea!
fuente
Python 2 , 61 bytes
Pruébalo en línea!
fuente
Conjunto Z80, código de máquina de 37 bytes
Suponga que un dispositivo de E / S mapeado en memoria:
fuente
V , 27 bytes
Pruébalo en línea!
Hexdump:
fuente
o<esc>
con soloï
PHP, 72 bytes
Hice este solo por diversión, ya que ya hay una mejor respuesta de PHP.
El cubo se dibuja obteniendo el valor binario de
64349871
, concatenado por'00'
.Esto devuelve lo siguiente:
Cada sexto carácter, estoy generando una nueva línea, lo que resulta en esto:
Y, en lugar de mostrar
0
, muestra un espacio, que se verá así:fuente
Carbón ,
1716 bytesPruébalo en línea! El enlace es a la versión detallada del código. Más largo de lo que quería, porque el "cubo" es un poco más ancho que alto o profundo. Afortunadamente, algunos de los caracteres multidireccionales funcionan con PolygonHollow, lo que me ahorra 3 bytes. Editar: guardado un byte adicional usando + en lugar de T ↑. Explicación:
En el momento del desafío, la
q
variable no funcionaba en modo detallado, de lo contrario podría haber creado esta versión de 14 bytes:Pruébalo en línea!
fuente
Apilado , 31 bytes
Pruébalo en línea!
Aquí hay un hexdump:
Esto convierte una matriz de caracteres en binario, rellena cada fila a la longitud
6
y la indexa de acuerdo con la cadena' ' input +
fuente
Pyth,
25222120 bytes¡Intentalo!
21 bytes
¡Prueba esto!
También 21 bytes:
¡Trata eso!
fuente
JS (ES6),
646052 bytes¿Se puede mejorar esto?
fuente
y=i+i+i+i
es más corto quey=i.repeat(4)
####
es aún más corto.C (gcc) ,
9084 bytesPruébalo en línea! Define una función
f
que toma un personajeg
. Lástima que codificar la tabla directamente es más corto ...Versión anterior, 90 bytes
(Todavía estoy tratando de jugar golf)
Tratando de tener solo uno
putchar
, pero idk. Hay no imprimibles, así que aquí está el hexdump:Esto codifica el cubo en una tabla de búsqueda binaria, donde un
1
bit representa la entrada y un0
bit representa un espacio. Pruébalo en línea!fuente
Brain-Flak , 217 bytes
Pruébalo en línea!
Waaaaay demasiado tiempo.
fuente
Swift - 82 bytes + Foundation (18 bytes)?
De forma predeterminada, los proyectos Xcode-Swift sí lo tienen
Whole-Module Optimization
, por lo queimport Foundation
no es necesario para esta sencilla función tipo lambda. Sin embargo, ejecutarlo en entornos en línea lo requiere, lo que puede agregar 18 bytes.¡Echale un vistazo!
fuente
Java 8, 55 bytes
Pruébalo aquí.
Java 7, 77 bytes
Pruébalo aquí.
fuente
CJam, 23 bytes
Siento que todavía puedo jugar golf esto.
fuente
dc , 70 bytes
Codifica la secuencia de forma bastante directa, con una optimización menor:
Pruébalo en línea!
Llevado a un extremo (no muy golfista), 145 bytes:
Pruébalo en línea!
Esto calcula
A*x+B
, dondeA
codifica las posiciones del carácter de entrada yB
codifica todo el resto:P
El comando imprime el número resultante como una secuencia de bytes.fuente
C #, 53 bytes
fuente
Lote de Windows, 79 bytes
Char especial seguro, 97 bytes:
fuente
.. %1%1%1%1\n %1 %1 %1...
Tcl, 60 bytes
fuente