La triangularité est un nouvel esolang développé par M. Xcoder où la structure du code doit suivre un modèle très spécifique:
- Pour la
n
e ligne de code, il doit y avoir exactement des2n-1
caractères du programme. Cela provoque une forme triangulaire / pyramide, la première ligne n'ayant qu'un seul caractère et le reste augmentant par incréments de 2. - Chaque ligne doit être remplie de
.
s à gauche et à droite, de sorte que les caractères soient centrés sur leurs lignes et que toutes les lignes soient remplies à la même longueur. Sil
est défini comme le nombre de lignes du programme, chaque ligne du programme doit avoir une longueur de2 * l - 1
Par exemple, le programme de gauche est valide, mais le programme de droite n'est pas:
Valid | Invalid
|
...A... | ABCDE
..BCD.. | FGH
.EFGHI. | IJKLMN
JKLMNOP | OPQRS
Lorsqu'il est disposé dans la structure valide, le nom devient évident.
Tâche
Votre tâche consiste à prendre une chaîne de ligne unique en entrée, représentant le code de triangulation, et à la convertir en code valide comme décrit ci-dessus.
Spécifications pour les E / S:
- L'entrée ne contiendra que des caractères dans la plage
0x20 - 0x7e
- La longueur de l'entrée sera toujours un nombre carré et donc bien remplissable.
- Vous devez utiliser des points pour le remplissage de sortie, pas autre chose.
Vous pouvez entrer et sortir par n'importe quelle méthode acceptable . C'est un code-golf donc le code le plus court en octets gagne!
Cas de test
input
----
output
g
----
g
PcSa
----
.P.
cSa
DfJ0vCq7G
----
..D..
.fJ0.
vCq7G
7xsB8a1Oqw5fhHX0
----
...7...
..xsB..
.8a1Oq.
w5fhHX0
QNYATbkX2sKZ6IuOmofwhgaef
----
....Q....
...NYA...
..TbkX2..
.sKZ6IuO.
mofwhgaef
ABCDEF"$%& G8"F@
----
...A...
..BCD..
.EF"$%.
& G8"F@
ab.c
----
.a.
b.c
Pour ceux qui connaissent la triangulation, vous remarquerez dans le dernier cas de test que les chaînes n'ont pas à être gérées
code-golf
string
code-golf
combinatorics
code-golf
math
number
code-golf
matrix
code-golf
string
decision-problem
code-golf
internet
code-golf
number
number-theory
integer
expression-building
code-challenge
primes
cops-and-robbers
obfuscation
code-challenge
primes
cops-and-robbers
obfuscation
code-golf
string
balanced-string
code-golf
quine
code-generation
code-golf
matrix
code-golf
tips
c#
code-golf
ascii-art
code-golf
ascii-art
source-layout
code-golf
quine
source-layout
popularity-contest
language-design
code-golf
array-manipulation
subsequence
code-golf
matrix
math
code-challenge
game
graph-theory
atomic-code-golf
code-golf
number
integer
polynomials
equation
code-golf
array-manipulation
sorting
caird coinheringaahing
la source
la source
Réponses:
Triangularité , 127 octets
Essayez-le en ligne!
Explication
En supprimant les caractères qui composent le remplissage, nous obtenons le programme suivant:
... Ce qui est assez long, non? Décomposons-le en morceaux.
Génération des entiers [0… √len (entrée))
Générer les points
Découper les personnages à l'avant
Découper les caractères à la fin
Fin de la boucle et jolie impression
la source
J
la fin et afficher un tableau de lignes. Je ne sais pas si cela va vous sauver quoi que ce soit, si la fin de la dernière ligne doit être remplie.
pour remplir l'espace restant.f
c'est nécessaire car la plage ne peut pas accepter d'arguments flottants (même avec.0
) 2) Se débarrasser deJ
ne permet pas d'économiser d'octets en raison du rembourrage, j'ai donc choisi le format de sortie le plus joli.Japt ,
151410 octetsGénère un tableau de lignes.
Essayez-le | Vérifier tous les cas de test
Explantion
Solution originale
Essayez-le
la source
Husk , 15 octets
Essayez-le en ligne!
Explication
la source
05AB1E ,
201918 octetsUn octet enregistré grâce à l' urne Magic Octopus
Essayez-le en ligne!
Explication
la source
ÅÉ
pour les cotes peut aider?g;ÅÉ£Rvy'.N×.ø}r»
,? Mais pas parce que ce n'est pas vrai lol.ÅÉ
serait certainement utile si nous pouvions trouver la longueur de la ligne du bas en 2 octets. Je ne sais pas si nous pouvons cependant. Cela pourrait aussi être une autre façon de l'incorporer.)R
au lieu der
cela n'a pas enregistré d'octets: /Python 2 , 83 octets
Essayez-le en ligne!
la source
Gelée ,
2219 octetsUn lien monadique renvoyant une liste de listes de personnages (les lignes)
Essayez-le en ligne!
Comment?
la source
JavaScript (ES7),
8278 octetsCas de test
Afficher l'extrait de code
Commenté
la source
05AB1E , 25 octets
Essayez-le en ligne!
la source
MATL , 21 octets
Essayez-le en ligne!
Explication
Considérez l'entrée
'DfJ0vCq7G'
comme exemple. Le contenu de la pile est affiché séparé par des virgules, avec l'élément supérieur en dernier. Les lignes d'un tableau 2D utilisent un point-virgule comme séparateur.la source
Propre ,
107948988 octetsEssayez-le en ligne! Exemple d' utilisation:
@[]1 ['ABCDEF"$%& G8"F@']
.la source
Haskell ,
8468 octetsEssayez-le en ligne!
Exemple d'utilisation:
[]%1 $ "abcd"
donne la liste des lignes[".a.","bcd"]
.la source
Perl,
5652 octetsComprend
+3
pour-p
Donner une entrée sur STDIN (en principe sans nouvelle ligne finale, mais cela n'a d'importance que pour l'entrée vide)
la source
-p
coûte que 1 octet'
. Mais ce code le fait, il doit donc être placé dans un fichier (ou s'échapper sur la ligne de commande) qui nécessite 3 caractères supplémentaires par rapport à la#!
ligne normale . Donc dans ce cas c'est le cas+3
(pour le code normal, vous verrez que je ne compte en effet que+
pourp
)Rouge ,
227203 octetsEssayez-le en ligne!
Non golfé:
la source
Rétine ,
887271 octetsEssayez-le en ligne! Edit: enregistré
1213 octets grâce à @MartinEnder. Explication:Divisez le premier personnage sur sa propre ligne pour faire rouler la balle.
Coupez chaque ligne de deux caractères de plus que la précédente.
Appuyez à gauche sur la première moitié de chaque ligne, en les centrant efficacement.
Appuyez à droite sur toutes les lignes.
la source
Fusain ,
2119 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Edit: enregistré 2 octets en découvrant
SquareRoot
. Explication:la source
Python 2 , 84 octets
Essayez-le en ligne!
la source
Nettoyer , 123 octets
Essayez-le en ligne!
la source
Rubis ,
7366 octetsEssayez-le en ligne!
-5 octets: retourne un tableau de chaînes au lieu de les imprimer
-2 octets: déclarer
z
en place au lieu d'avanceNon golfé:
Déclarer une variable
r=q-1
pour que je puisse prendres[r*r...q*q]
enregistre exactement zéro octet.L'utilisation
.center
au lieu du remplissage manuellement permet également d'économiser zéro octet, mais je l'aime mieux.la source
Stax , 19 octets
Exécuter et déboguer
Équivalent ASCII:
la source