Problème
entrée donnée a,b,c
où a,b,c
sont des entiers pairs positifs
et a > b > c
Faire une boîte de n'importe quel caractère autorisé avec des dimensions a x a
Centrer une boîte d'un caractère autorisé différent avec des dimensions b x b
dans le précédent
Centrer une boîte d'un autre caractère autorisé différent avec des dimensions c x c
dans le précédent
Les caractères autorisés sont des caractères ASCII [a-zA-z0-9!@#$%^&*()+,./<>?:";=_-+]
Contribution a=6, b=4, c=2
######
#****#
#*@@*#
#*@@*#
#****#
######
Contribution a=8, b=6, c=2
########
#******#
#******#
#**@@**#
#**@@**#
#******#
#******#
########
Contribution a=12, b=6, c=2
############
############
############
###******###
###******###
###**@@**###
###**@@**###
###******###
###******###
############
############
############
Règles
- Victoires de code les plus courtes
- N'oubliez pas que vous pouvez choisir le caractère à imprimer dans la plage indiquée
- Nouvelles lignes de fin acceptées
- Espace de fin accepté
- les fonctions peuvent renvoyer une chaîne avec des retours à la ligne, un tableau de chaînes ou l'imprimer
Réponses:
Fusain , 14 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code.
la source
Gelée ,
2019 octets-1 octet en utilisant le rapide
`
pour éviter un lien, comme suggéré par Erik l'Outgolfer.Un programme complet prenant une liste d'
[a,b,c]
impression des boîtes en utilisanta:2 b:1 c:0
... en fait, tout comme, il fonctionnera jusqu'à 10 boîtes, où la boîte est plus à l' intérieur
0
( par exemple ).Essayez-le en ligne!
Comment?
la source
Python 2,
107103 octetsProgramme complet, imprime des boîtes avec
a=2
,b=1
,c=0
Réponse légèrement pire, avec compréhension de la liste (104 octets):
la source
C #,
274232 octetsTerrible même pour C # donc peut certainement être joué au golf mais mon esprit est devenu vide.
Version complète / formatée:
la source
j + m <= n + c
peut devenirn + c > j + m
i + m >= n
den < i + m
i+m
4 fois, vous pouvez donc l'ajouter à une variable dans votrefor
pour en sauveri
isolément, il suffit d'initialiseri=m
et de compareri<b+m
; ou ... utilisez simplementi
, initi=0
but loop oni<a
, puis ajoutez àr[i]=new string('#',a),
côté dej=0
, et ajoutez une condition pour vérifier qu'ili
est dans les limites dej
la boucle de (cela devrait être payant, car vous perdez tout le Linq).Haskell , 126 octets
Essayez-le en ligne!
la source
JavaScript (ES6),
174170147 octetsEssayez-le
Explication
la source
C (gcc) , 97 octets
Essayez-le en ligne!
la source
V ,
70, 44, 42 octetsEssayez-le en ligne!
C'est hideux. Eww.Bien mieux. Toujours pas le plus court, mais au moins un peu golfique.Sauvegardé deux octets grâce à @ nmjmcman101!
Hexdump:
la source
MATL ,
2623222018 octetsL'entrée est un vecteur de colonne
[a; b; c]
. Caractères Utilisations de sortie2
,1
,0
.Essayez-le en ligne!
En passant, cela fonctionne jusqu'à dix boîtes, pas seulement trois Voici un exemple avec cinq boîtes .
la source
Mathematica, 49 octets
Prend des informations
[c, b, a]
. La sortie esta=1, b=2, c=3
.Comment?
la source
Grid
Ne faitString
ni ne lePrint
fait.PHP> = 7.1, 180 octets
Dans ce cas, je déteste que les variables commencent par un
$
en PHPPHP Sandbox Online
la source
$argv
comme un tableau? As-tu essayé ça? Avez-vous essayé des ternaires séparés?Mathematica, 173 octets
contribution
la source
Python 2 , 87 octets
Essayez-le en ligne!
Calcule arithmétiquement les nombres à imprimer en ajoutant des nombres du formulaire
111100
. Il y a beaucoup de laideur, probablement une amélioration.la source
Java 8,
265252 octets-13 octets en remplaçant les caractères par des chiffres.
Peut certainement être joué au golf en utilisant une approche différente.
Explication:
Essayez-le ici.
la source
JavaScript (ES6), 112
Fonction anonyme renvoyant une chaîne de plusieurs lignes. Caractères 0,1,2
Moins golfé
la source
PHP> = 5,6, 121 octets
Exécutez-le
-nr
ou testez-le en ligne .Boucles combinées à nouveau ... je les aime!
panne
la source