Tâche
Étant donné un caractère imprimable non blanc, faites une représentation carrée 3x3 de cette entrée. Par exemple, si l'entrée est #
, alors la sortie est:
###
# #
###
Règles
- Le format de sortie est strict, bien qu'une nouvelle ligne de fin soit autorisée. Cela signifie que l'espace au milieu est requis, et aussi que les deux caractères de nouvelle ligne séparant les trois lignes sont requis.
Cas de test
Contribution: #
Sortie:
###
# #
###
Contribution: A
Sortie:
AAA
A A
AAA
Contribution: 0
Sortie:
000
0 0
000
Notation
C'est du code-golf . La réponse la plus courte en octets l'emporte.
Réponses:
Fusain ,
53 octetsEssayez-le en ligne! Edit: Économisez 40% grâce à @carusocomputing. Explication:
la source
B³S
pour tromper la merde vivante.Carotte , 11 octets
Essayez-le en ligne!
Le programme est en mode curseur, où
#
s sont remplacés par l'entrée.la source
Python 2 , 32 octets
Essayez-le en ligne!
Pour
s='a'
: le milieu les+'\n \n'+s
génèrea\n \na
et les.join
transforme (les caractères gras sont ceux qui ajoutent), car accepte une chaîne comme itérable, puis elle est entourée des deux caractères manquantsaa\na a\naa
a
.join
.join
la source
3*c+c.join('\n \n')+3*c
liens sont à 32.)MATL , 5 octets
Essayez-le en ligne!
Explication
la source
05AB1E , 8 octets
Essayez-le en ligne!
Idée originale utilisant 30 comme nombre binaire (inachevé, quelqu'un d'autre essaie ceci dans une autre langue):
05AB1E , 12 octets
Essayez-le en ligne!
la source
Python 3.6 , 33 octets
Essayez-le en ligne!
la source
import sys
, puissys.version
dans la réplique, elle renvoie 3.6.1 plutôt que 3.5.2. Aucune idée pourquoi il est dit 3.5.2 en haut alors, il semble qu'ils y aient fait une erreur!RPL (Reverse Polish Lisp) , 60 caractères
(Notez que "→" est un seul caractère sur le HP48 et les calculatrices compatibles)
Représenterait visuellement ce que vous voulez en ayant trois éléments sur la pile:
Si vous insistez pour le renvoyer en une seule chaîne, vous devez également ajouter les caractères de nouvelle ligne et combiner les chaînes, laissées en exercice au testeur suivant.
Explication:
→STR
: Transformez le dernier objet de la pile en chaîne. (Ainsi, l'entrée peut être n'importe quoi, par exemple un nombre.)1
4
: Poussez le numéro1
et4
vers la pile.START [...] NEXT
: Comme une boucle for mais sans accès à la variable counter. Prend deux nombres de la pile (ici, nous venons de pousser1
et4
) et exécute le code[...]
les temps correspondants (ici, quatre fois).DUP
: Dupliquez la dernière entrée de la pile." "
: Poussez la chaîne(c'est-à-dire la chaîne avec un espace) dans la pile.
+
: Prenez deux objets de la pile et renvoyez-les ensemble, pour les chaînes: Concaténées.4
: Poussez le numéro4
sur la pile.ROLLD
: Prend le dernier élément (ici:4
que nous venons de pousser) de la pile et fait rouler l'élément suivant aussi bas dans la pile que le nombre que nous venons de prendre de la pile spécifie.SWAP
: Échange les deux derniers éléments de la pile.2
: Poussez2
vers la pile.PICK
: Prend un élément (ici: le2
nous venons de pousser vers la pile), l'interprète comme un nombre n et copie le nième élément de la pile.la source
JavaScript, 28 octets
Essayez-le
la source
c+'\n'+c
dans un temporaire.Gelée , 8 octets
1 octet merci à Erik l'Outgolfer.
Essayez-le en ligne!
la source
x4µ©;⁶;®œs3Y
pour 12 octets car je n'arrivais pas à comprendre comment éviter que la répétition multiplie toute mon étape intermédiaire mais sympa!K
pour fairej⁶
. Oh, et il y a un rapide,`
pour convertir une dyade en monade en utilisant le même argument des deux côtés.Java 7,
5655 octets-1 Merci à Leaky Nun d'avoir souligné l'espace qui m'a manqué
Remplace simplement les points par le caractère donné, pour l'entrée #:
Essayez-le en ligne!
la source
PHP, 32 octets
Essayez-le en ligne!
la source
<?=$a=$argn,"$a$a\n$a $a\n$a$a$a";
(un saut de ligne réel au lieu de \ n bien sûr) a exactement le même nombre d'octets.sed,
2818 octetsEssayez-le en ligne!
la source
:
. Fixé.Brain-Flak ,
7670 + 1 = 71 octetsNécessite le
-c
drapeauEssayez-le en ligne!
la source
(()()()()()){}
par([])[]{}
.Pyth, 7 octets
Essayez ceci en ligne.
Explication:
la source
Brain-Flak ,
61, 59 octetsEssayez-le en ligne!
Il s'agit de 58 octets de code
+1
pour l'-c
indicateur qui permet l'entrée et la sortie ASCII.Explication:
la source
C (gcc) ,
4947 octetsEnregistré 2 octets grâce à 2501!
Essayez-le en ligne! a une nouvelle ligne de fin
la source
for(j=11;j;)...
Python 3 , 34 octets
Essayez-le en ligne!
la source
lambda x:x*3+'\n%s '%x+x+'\n'+x*3
Octave , 36 octets
Essayez-le en ligne!
Explication
Cela crée une matrice de 3x3 caractères avec le caractère d'entrée répété et définit sa 5ème entrée dans l'ordre des colonnes principales (c'est-à-dire son centre) sur
32
(ASCII pour l'espace).la source
Pyke , 5 octets
Essayez-le en ligne!
la source
Rubis ,
2725 octetsSauvegardé 2 octets grâce à Level River St
Essayez-le en ligne!
la source
f=...
) puis l'appeler avecf.call(...)
"\n"
pour économiser 1 octet. Encore une meilleure utilisation$/
qui est une variable spéciale définie par défaut sur la nouvelle ligne - économisant 2 octets.tr
solution. beau travailBrainfuck, 40 octets
Essayez-le en ligne! Nécessite une implémentation qui peut accéder à gauche de la position de départ.
Voir aussi: la réponse du cerveau de Graviton qui adopte une approche différente (mais est plus longue).
Explication:
Brainfuck peut faire beaucoup de trucs sympas avec son jeu d'instructions limité. Malheureusement, cette réponse n'en utilise aucun, car il est moins cher (en termes d'octets) de tout coder en dur.
# = caractère saisi, _ = espace (ASCII 32), \ n = nouvelle ligne (ASCII 10)
Résultats dans cette belle boîte (pour l'entrée '+'):
la source
05AB1E ,
76 octets-1 octet grâce à carusocomputing.
Explication:
Utilise l' encodage CP-1252 . Essayez-le en ligne!
la source
ж¹ðJû
pour 6 octets.Pyth , 11 octets
Essayez-le en ligne!
Explication:
la source
> <> ,
2423 octetsEssayez-le en ligne!
la source
Swift3, 50 octets
Cela utilise l'opérateur ternaire pour imprimer différentes chaînes, selon la ligne.
Essayez-le en ligne
la source
V , 8 octets
Essayez-le en ligne!
la source
<M-h>ollow
Qui vous permet de creuser l'intérieur de votre boîte: Essayez-le en ligne!C #, 50 octets
Cas de test:
la source
Console
ieSystem.Console..
Vim, 9 frappes
En supposant que le caractère d'entrée est présent dans un tampon, vim rend cela simple
Il y a probablement quelques commandes Magic Vim utiles ici (il semble toujours y en avoir), donc les suggestions d'amélioration sont les bienvenues. Une seule touche derrière V!
la source
Assemblage Z80 ou 8080, code machine 21 octets
Supposons un périphérique d'E / S mappé en mémoire:
Aucun interprète nécessaire!
Hexdump:
où l'adresse d'entrée est à FF00h et l'adresse de sortie est mappée à FF01h. Les adresses réelles dépendront du matériel réel. Bien sûr, cela suppose que les E / S sont mappées en mémoire. S'il s'agit d'E / S mappées, cela prendrait plusieurs octets supplémentaires car les instructions d'E / S Z80 et 8080 sont de deux octets chacune. Cela suppose également que le périphérique de sortie interprète 0Ah comme une nouvelle ligne et ne nécessite pas de CR (0Dh) qui ajouterait 4 octets supplémentaires au programme.
la source
J-uby ,
2220 octets-2 octets grâce à @Jordan
Explication
String#tr
est la méthode de remplacement par caractère de Ruby. La première&
se lie:tr
à"...\n. .\n..."
, et le second applique partiellement'.'
à elle. En fait, c'est->s{"...\n. .\n...".tr('.',s)}
la source
:tr
aussi bien:gsub
qu'ici?