Imprimez un bloc tour avec le code le plus court possible.
Contribution:
L'entrée définit le nombre d'étages du bloc tour. Un étage contient une fenêtre de chaque côté de la porte. La fenêtre est composée de hachages 3x3.
Un exemple d'un bloc de tour de 4 étages est ci-dessous:
=====================
)V V V V V V V V V V(
)V V V V V V V V V V V(
)V V V V V V V V V V V V(
)V V V V V V V V V V V V V(
~~~~~~~~~~~~~~~~~~~~~~~~~~~
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : : : : : : : : : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : ### : : : : : : ### : :
: : : : : : : : : : : : : :
: : : : : _______ : : : : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : ### : I I : ### : :
: : : : : I I : : : : :
Mise à jour:
L'entrée doit être supérieure ou égale à un.
Les espaces de fin à la fin des lignes sont autorisés.
Dans mon exemple, chaque ligne a trois espaces de début. Ce n'est pas obligatoire, juste le bloc tour avec l'entrée l'est.
Réponses:
V , 72 octets
Essayez-le en ligne!
Voici un hexdump, car il contient des caractères non imprimables:
J'ai rencontré un étrange bug. La section au milieu:
dGÀpG
aurait dû être:,ÀäGG
mais cela ne fonctionne pas pour les entrées de 1, et je ne sais pas pourquoi.¯\_(ツ)_/¯
la source
Mathematica,
301288258 octetsFonction pure qui prend un entier positif et produit une chaîne. La chaîne de sortie ne sera pas correcte car Mathematica n'affiche apparemment pas les polices monospaces en tant que monospace:
Pour des raisons que je ne comprends pas très bien, le formatage est monospace si vous utilisez
Print
la chaîne:Modifier: enregistré plusieurs octets en n'incluant pas
" "
au début de chaque ligne. Modification de la définition des
pour gérer le cas où il n'y a qu'un seul étage (StringRepeat
n'aime pas répéter une chaîne de0
fois).Edit 2: Merci à LegionMammal978 et au fait que
StringJoin
c'estListable
maintenant un cauchemar incompréhensible de listes imbriquées et aussi 30 octets plus court.la source
a<>b<>...<>x
para<>{b,...,x}
dans certaines parties.Python 2 ,
275270262246240236 octetsEnregistré un couple avec un indice de @ Flp.Tkc et en changeant la première boucle for.
16 enregistrés avec plus d'aide de @ Flp.Tkc
Essayez-le en ligne!
Il suffit de construire chaque ligne de la tour sous forme de chaîne et de l'ajouter à un tableau pour imprimer le tableau à la fin. Si quelqu'un veut une explication complète, je donnerai à contrecœur si je me souviens comment cela fonctionne ☺
la source
PowerShell , 193 octets
Essayez-le en ligne!
(Je pense qu'il peut encore y avoir quelques octets ici ou là. Le Sub-190 semble faisable.)
Les trois premières lignes forment le toit, en utilisant la multiplication et la concaténation des chaînes, ainsi qu'une boucle
3..0|%{...}
pour obtenir le nombre et l'inclinaison corrects deV
s.La ligne suivante va de l'entrée pré-décrémentée
--$args[0]
jusqu'à0
une boucle (la pré-décrémentation nous permet d'indexer en utilisant!$_
au lieu d'$_-eq1
enregistrer plusieurs octets plus tard). À chaque itération de boucle, nous construisons un tas de chaînes, définissons des variables$b
et en$a
cours de route. Nous utilisons également des pseudo-ternaires(... , ...)[...]
pour choisir les chaînes appropriées pour le milieu afin que nous puissions corriger la porte au premier étage.Chacune des chaînes est laissée individuellement sur le pipeline, et la valeur par défaut
Write-Output
insère des retours à la ligne entre, donc nous les obtenons gratuitement.la source
T-SQL,
378372353331325 octetsGolfé:
Non golfé:
Essaye le
la source
C,
409406402 octetsAppeler avec:
la source
Lot, 373 octets
Construit la crête et la gouttière en remarquant qu'ils sont des multiples de 3, ce qui réduit de quelques octets. Construit le toit en notant que le suffixe est le même pour chaque ligne (et comprend à nouveau une triple répétition). Construit les murs en commençant par la ligne de mur la plus intéressante, qui est la fenêtre du rez-de-chaussée, et en supprimant les détails pour générer les autres parties du mur.
la source
Javascript, 335 octets
Crée une fonction
y()
avec argumentz
, telle qu'elley(z)
produit la sortie souhaitée.Exemple d'utilisation:
Je passe d'un JavaScript normal à un JS de golf de code. Tous les conseils seraient grandement appréciés.
la source
Toile ,
6261 octetsEssayez-le ici! L'entrée 0 fonctionne comme prévu même si ce n'est pas obligatoire.
la source