Tous les programmeurs savent que les supports []{}()<>
sont vraiment amusants. Pour exacerber ce plaisir, des groupes de crochets entrelacés peuvent être transformés en diagrammes mignons et flous.
Disons que vous avez une chaîne qui contient des crochets équilibrés, comme [{][<(]})>(())
. La première étape consiste à faire pivoter la chaîne de 45 degrés dans le sens des aiguilles d'une montre. (Dans Mathematica, cela peut être presque fait avec Rotate[ur_string,-pi/4]
). Voici le résultat de la première étape:
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Ajoutez ensuite un espace en diagonale entre chaque personnage.
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Ensuite, commencez par la tranche la plus à gauche et tracez un carré entre celle-ci et son partenaire criminel.
+---+
| |
| { |
| |
+---+
[
<
(
]
}
)
>
(
(
)
)
Répétez cette procédure avec chaque paire de crochets, en écrasant les caractères précédents avec +
s si nécessaire.
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| [ |
| |
| < |
| |
| ( |
| |
| ] |
| |
+-----------+
)
>
(
(
)
)
Continuez jusqu'à ce que vous ayez tout fait beau et carré.
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| +-----+ |
| | | |
| | +---+-+---+
| | | | | |
| | | +-+-+-+ |
| | | | | | | |
| +-+-+-+ | | |
| | | | | |
+-----+-+---+ | |
| | | |
| +-----+ |
| |
+---------+
+-----+
| |
| +-+ |
| | | |
| +-+ |
| |
+-----+
Contribution
L'entrée consistera en une seule ligne de crochets équilibrés et pas d'autres caractères, chaque crochet étant l'un des []{}()<>
. Chaque type de support est équilibré individuellement, bien que différents types puissent se chevaucher (c’est ce qui rend les carrés intéressants). Un retour à la ligne est facultatif.
Sortie
La sortie sera le motif carré de verrouillage généré à partir de la chaîne de parenthèse. Les espaces de fin et les nouvelles lignes sont facultatifs, mais il ne doit pas y avoir d'espaces de début.
Objectif
C'est code-golf, le moins d'octets gagne.
la source
[[]]
pouvons-nous produire deux carrés qui se chevauchent ou devons-nous produire un carré à l'intérieur de l'autre?Réponses:
JavaScript (ES6),
269 274 278 296261 octetsModifier 4 octets enregistrés @Neil
TESTER
la source
[...r].map
?[...r].map(c=>c||' ')
.r.map
car r est un tableau fragmenté et la carte ignore les éléments manquants. J'utilise donc maintenant g, qui est rempli (et il y a autant de lignes que de colonnes dans la sortie)r.map
, j'ai dit[...r].map
, et ce[...r]
n'est PAS un tableau épars, comme vous l'avez mentionné vous-même dans codegolf.stackexchange.com/a/61505 commentaire 5.Python 3, 226
Exemple . Explication:
la source
pb - 449 octets
J'étais tout excité quand j'ai lu ceci parce que j'ai un langage qui imprime directement à une position! Ce défi sur le positionnement des sorties doit être simple et rapide!
Puis je me suis souvenu que pb avait toujours un vent long.
Avec des commentaires:
la source
CJam, 117 octets
Essayez ici.
la source
Ruby, 268
programme non testé
la source