Vous êtes l'hôte des Jeux Olympiques et devez construire une piscine fantastique pour l'occasion, mais les superviseurs changent souvent d'avis concernant les dimensions et ont besoin d'un moyen rapide de le reconstruire avec la taille demandée!
Étant donné deux nombres entiers, L
et x
votre tâche est de construire une piscine de longueur L
etx
voies.
Comment se construit une piscine?
Il contient un carré intérieur, dont les parois horizontales sont constituées de
L
tirets consécutifs (-
), et dont les parois verticales sont constituées de3x - 1
barres (|
). De plus, 4+
panneaux se trouvent dans chaque coin. Prenons un exemple (L = 10, x = 2
):+ ---------- + | | | | | | | | | | + ---------- +
Chaque voie a une largeur de 2 unités verticales. Le carré intérieur est rempli de
x-1
séparateurs de voies, constitués de symbolesL
consécutifs horizontalement:
. Après avoir mis les séparateurs de voies, notre piscine devrait ressembler à ceci:+ ---------- + | | | | | :::::::::: | | | | | | + ---------- +
Une piscine contient également un rembourrage (un carré extérieur), dont les parois horizontales sont (L + 4)
-
s et dont les parois verticales sont (3x + 1)|
s, qui entoure le carré intérieur:+ -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | | + ---------- + | + -------------- +
Et c'est notre piscine de taille olympique **!
Spécifications:
Pour des raisons de conception et de fonctionnalités, vous êtes assuré que
100 ≥ L ≥ 10
et15 ≥ x ≥ 2
.La sortie doit être exactement comme indiqué. La sortie d'un pool "construit verticalement" * est interdite.
Les espaces de fin et de début sont autorisés.
Vous pouvez prendre des entrées et fournir des sorties par toute méthode standard .
Les échappatoires par défaut s'appliquent.
Exemples / cas de test:
L = 20, x = 3 + ------------------------ + | + -------------------- + | | | | | | | | | | | ::::::::::::::::::::: | | | | | | | | | | | | ::::::::::::::::::::: | | | | | | | | | | | + -------------------- + | + ------------------------ + L = 50, x = 5: + ------------------------------------------------- ----- + | + ------------------------------------------------- - + | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | + ------------------------------------------------- - + | + ------------------------------------------------- ----- + L = 10, x = 15 + -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | + ---------- + | + -------------- +
C'est du code-golf , donc le code le plus court en octets gagne!
* L'eau pourrait s'écouler si elle est construite verticalement: P
** Oui, je sais que plus les couloirs sont nombreux et plus la piscine est courte, moins le dessin ressemble à une piscine!
x>=L
??L=10
etx=15
? N'y aurait-il pas plus de couloirs que ce qui pourrait être placé dans la piscine? Je pourrais mal comprendre l'intentionRéponses:
Fusain , 32 octets
Essayez-le en ligne!
-4 merci à Neil .
AST:
la source
-a
argument de ligne de commande.-a
soulève une erreur> _ <Fusain ,
403937 octetsEssayez-le en ligne!
je sais Neil a déjà une réponse au charbon de bois de la même longueur, mais j'ai adopté une approche légèrement différente, alors j'ai pensé que je pourrais aussi poster la mienne.
Explication
la source
B
est facultatif? Bien, cela me fait gagner deux octets!Fusain,
40383631 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Les primitives de dessin de Charcoal utilisent le nombre total de caractères, y compris
+
s, mais l'entrée n'est que le nombre de-
s, nous devons donc ajouter 2 pour obtenir la largeur de la paroi intérieure.Calculez la hauteur de la paroi intérieure, encore une fois, y compris la rangée du bas, donc trois par voie plus une.
Dessinez les voies. Il s'agit simplement d'un rectangle rempli de
:
s séparés verticalement par deux lignes vides (les pilcrows représentent des caractères de nouvelle ligne).La
Rectangle
commande est exactement ce dont nous avons besoin pour dessiner la paroi intérieure. Edit:Box
permet d'omettre son troisième paramètre, me faisant économiser 2 octets.Et encore pour dessiner le mur extérieur, sauf légèrement plus large et plus haut, et centré sur le mur intérieur.
la source
T-SQL,
284281 octetsL'entrée est tirée des colonnes INT L et x dans le tableau préexistant t , selon nos méthodes d'entrée autorisées .
Fondamentalement, je crée une longue chaîne avec des lettres représentant les caractères répétés (d = tirets, s = espaces, c = deux-points, b = saut de ligne), puis REMPLACEZ-les tous à la fin avec les remplisseurs appropriés.
Formaté:
À l'intérieur de la boucle, j'ajoute 2 rangées de blancs et 1 rangée de deux-points, puis à la fin, je coupe cette ligne de séparation et j'ajoute la bordure du pool avant d'effectuer les remplacements.
EDIT : sauvegarde de 3 octets en passant
@
à la variable la plus utilisée et en inversant l'ordre d'initialisation.la source
JavaScript (ES6),
137124 octetsJe l'ai joué un peu sur mon téléphone, plus à suivre.
Essayez-le
la source
Python 2 ,
124120117 octets-2 octets grâce à Hyper Neutrino
Essayez-le en ligne!
la source
t
n'est pas nécessaire)SOGL V0.12 ,
5251 octetsEssayez-le ici!
Pas mal étant donné que 20 octets sont une fonction rectangulaire, pour laquelle le charbon de bois a une fonction intégrée.
Explication:
la source
C # (.NET Core) , 202 octets
Essayez-le en ligne!
la source
Python 2 ,
128126 octetsEssayez-le en ligne!
-2 octets grâce à @ Mr.Xcoder
la source
PHP , 153 octets
Essayez-le en ligne!
la source
Python 2 , 97 octets
Essayez-le en ligne!
Python 2 , 98 octets
Essayez-le en ligne!
la source
Fusain , 36 octets
Essayez-le en ligne!
Ceci est un algorithme plus Charcoal-y que mon autre réponse.
la source
C (gcc) , 195 octets
Essayez-le en ligne!
la source
Perl 5 , 124 + 1 (-a) = 125 octets
Essayez-le en ligne!
la source