Tâche
Avec une chaîne non vide de lettres ASCII minuscules a
- z
, prenez son premier caractère et:
- Entourez-le d'un carré de copies du deuxième caractère,
- Entourez cela avec un diamant de copies du troisième caractère,
- Entourez-le d'un carré de copies du quatrième caractère…
… Alternant bordures carrées et losanges jusqu'à la fin de la ficelle. Les espaces vides entre les bordures doivent être représentés par des espaces ASCII ( ).
Pour ajouter une bordure carrée , dessinez un carré exactement autour de la totalité du «tableau de travail» actuel:
sssssssssss
t s t s
t t s t t s
t t s t t s
t aaa t s t aaa t s
t aca t => st aca ts
t aaa t s t aaa t s
t t s t t s
t t s t t s
t s t s
sssssssssss
Pour ajouter une bordure en diamant , dessinez une forme de diamant centrée qui touche le carré le plus externe en diagonale , mais pas orthogonalement :
s
s s
s s
s s
s s
s s
s s
wwwwwwwwwww s wwwwwwwwwww s
w o w s w o w s
w o o w s w o o w s
w o o w s w o o w s
w o eee o w s w o eee o w s
wo eme ow => s wo eme ow s
w o eee o w s w o eee o w s
w o o w s w o o w s
w o o w s w o o w s
w o w s w o w s
wwwwwwwwwww s wwwwwwwwwww s
s s
s s
s s
s s
s s
s s
s
Votre programme doit sortir le tableau final.
- Chaque ligne peut contenir n’importe quelle quantité d’espaces de fin.
- Vous pouvez générer une liste de chaînes représentant des lignes ou une seule chaîne séparée par une nouvelle ligne avec une nouvelle ligne de fin facultative.
- Les lignes vides de début / fin sont interdites.
- Les colonnes d'espaces en tête sont également interdites.
C'est du code-golf . Le code le plus court en octets gagne.
Cas de test
Les exemples ci - dessus sont les résultats attendus pour cat
, cats
, meow
et meows
, dans l' ordre de lecture. Quelques autres cas à manipuler:
Pour l’entrée
a
, votre programme devrait produire:a
Pour l’entrée
ab
, votre programme devrait produire:bbb bab bbb
Pour l’entrée
codegolf
, votre programme devrait produire:fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l ooooooooooooooooooooooooooo l f f l o g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g eeeeeeeeeee g o l f f l o g e d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d ooo d e g o l f fl og ed oco de go lf f l o g e d ooo d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d e g o l f f l o g eeeeeeeeeee g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g o l f f l ooooooooooooooooooooooooooo l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l f fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Mise en oeuvre de référence
J'ai écrit un code de Julia que la sortie de votre programme devrait correspondre (au moins visuellement). Essayez-le en ligne!
\r\n
) au lieu d'un (\n
)?