Sur cette base: fais-moi un carré!
Vous devez générer ceci:
####
# # #
### #
# # #
####
Où "#" est remplacé par l'entrée.
Si vous entrez "A", vous devriez obtenir
AAAA
A A A
AAA A
A A A
AAAA
Si vous entrez "&", vous devriez obtenir
&&&&
& & &
&&& &
& & &
&&&&
Classement
Voici un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue.
/* 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↗
cela peut très bien être proche d'une réponse de 10 octets en fusain ... Je ne connais pas assez bien la langue pour le faire, il doit vraiment y avoir une page comme celle-ci mais pour le charbon.Réponses:
Carotte , 31 octets
#
s sont remplacés par l'entrée.Fondamentalement, un port de cette réponse , à ce problème.
la source
05AB1E ,
1615 octetsEssayez-le en ligne!
Explication
la source
•nxвΛ•bTRð¹ì‡6ô»
... le vôtre bat légèrement la translittération, uniquement en raison des exigences de commande; si je pouvais trouver un moyen de prendre implicitement l'entrée et de générer la chaîne01
en 1 octet, ce serait une solution de 13/14 octets.•nxвΛ•bT𹫇6ô»
ouð«T•nxвΛ•br‡6ô»
est de même longueur.Cubix , 62 octets
Essayez-le en ligne! et regardez l'interprète!
Cela correspond à un 4 cubes:
Je ne suis pas très bon pour manipuler la direction du pointeur d'instructions, je vais donc continuer à essayer cela. Ceci et ma réponse ici sont basés sur le "Bonjour, monde!" exemple de programme utilisant
./v.o;@?/
(sur un 3-cube) pour imprimer et pop récursivement les caractères sur la pile, donc le reste du code pousse simplement les caractères sur la pile dans le bon ordre.J'ai maintenant fait un cube sur un cube, donc je peux rester tranquille (et faire mon travail réel).
la source
SOGL ,
1310 octetsExplication:
la source
MATL ,
1310 octetsMerci à Conor O'Brien d'avoir supprimé 3 octets et de m'avoir montré que les non imprimables peuvent être utilisés dans Octave.
Le code contient des caractères non imprimables. Essayez-le en ligne!
Explication
la source
echo 0f15392a3c|xxd -r -p|clip
. Sous Windows,clip
c'est le presse-papiers. Ensuite, je les ai juste collées: P (si vous êtes sur une ligne de commande, c'est^O^U
aussi bien)PHP, 52 octets
Essayez-le en ligne!
la source
Japt , 20 octets
Testez-le en ligne!
Pas trop mal pour une langue sans compression intégrée (enfin, sauf la compression de chaînes de lettres minuscules) ...
Explication
En binaire, les cinq caractères de la chaîne sont:
Découpez l'initiale
1
de chacun et vous obtenez le modèle du cube.la source
ll
peut être compressée), mais c'est 11 octets de plus.LOLCODE,
202170 octetsA LOLCODE, pas grand chose au golf ...
Cela définit la variable
c
dans l'entrée et crée une chaîne concaténée géante comprenant des:)
sauts de ligne. C'est à peu près ça.la source
expected HAI at: I
tio.run/nexus/…VISIBLE
concatène implicitement, vous pouvez donc supprimerSMOOSH
tio.run/nexus/lolcode#@@/…Sed, 40 caractères
Presque tricherie car la description du défi la contenait presque littéralement.
Exemple d'exécution:
Essayez-le en ligne!
la source
Python 2 , 61 octets
Essayez-le en ligne!
la source
Assemblage Z80, code machine 37 octets
Supposons un périphérique d'E / S mappé en mémoire:
la source
V , 27 octets
Essayez-le en ligne!
Hexdump:
la source
o<esc>
par justeï
PHP, 72 octets
J'ai fait celui-ci juste pour le plaisir, car il existe déjà une meilleure réponse PHP.
Le cube est dessiné en obtenant la valeur binaire de
64349871
, concaténée par'00'
.Cela renvoie les éléments suivants:
Chaque 6ème personnage, j'émets une nouvelle ligne, ce qui se traduit par:
Et, au lieu d'afficher
0
, il affiche un espace, qui ressemblera à:la source
Fusain ,
1716 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Plus long que je ne le souhaitais, car le "cube" est légèrement plus large que haut ou profond. Heureusement, certains des caractères multidirectionnels fonctionnent avec PolygonHollow, ce qui me fait gagner 3 octets. Edit: enregistré un octet supplémentaire en utilisant + au lieu de T ↑. Explication:
Au moment du challenge, la
q
variable ne fonctionnait pas en mode verbeux, sinon j'aurais pu créer cette version à 14 octets:Essayez-le en ligne!
la source
Empilé , 31 octets
Essayez-le en ligne!
Voici un hexdump:
Cela convertit un tableau de caractères en binaire, remplit chaque ligne en longueur
6
et l'indexe en fonction de la chaîne' ' input +
la source
Pyth,
25222120 octetsEssayez!
21 octets
Essaye ça!
Aussi 21 octets:
Essayez ça!
la source
JS (ES6),
646052 octetsCela peut-il être amélioré:
la source
y=i+i+i+i
est plus court quey=i.repeat(4)
####
est encore plus court.C (gcc) ,
9084 octetsEssayez-le en ligne!Définit une fonction
f
qui prend un caractèreg
. Dommage que l'encodage direct de la table soit plus court ...Ancienne version, 90 octets
(J'essaie toujours de jouer au golf)
Essayer d'avoir un seul
putchar
, mais idk. Il y a des non imprimables, voici donc l'hexdump:Cela code le cube dans une table de recherche binaire, où un
1
bit représente l'entrée et un0
bit représente un espace. Essayez-le en ligne!la source
Brain-Flak , 217 octets
Essayez-le en ligne!
Waaaaay trop longtemps.
la source
Swift - 82 octets + Foundation (18 octets)?
Par défaut, les projets Xcode-Swift ont
Whole-Module Optimization
, ce quiimport Foundation
n'est pas requis pour cette simple fonction de type lambda. Cependant, son exécution dans des environnements en ligne l'exige, ce qui peut ajouter 18 octets.Vérifiez-le!
la source
Java 8, 55 octets
Essayez-le ici.
Java 7, 77 octets
Essayez-le ici.
la source
CJam, 23 octets
Je sens que je peux encore jouer au golf.
la source
dc , 70 octets
Encode la séquence plutôt directement, avec une optimisation mineure:
Essayez-le en ligne!
Pris à un extrême (pas très golfique), 145 octets:
Essayez-le en ligne!
Cela calcule
A*x+B
, oùA
code les positions du caractère d'entrée etB
code tout le reste:P
La commande imprime le nombre résultant sous la forme d'un flux d'octets.la source
C #, 53 octets
la source
Lot Windows, 79 octets
Caractère spécial. sûr, 97 octets:
la source
.. %1%1%1%1\n %1 %1 %1...
Tcl, 60 octets
la source