Merci à @KritixiLithos de m'aider à relever ce défi!
V est un langage de programmation que j'ai écrit pour pouvoir utiliser et étendre vim aux défis du code-golf. Le tout premier engagement a eu lieu le 3 mars 2016, ce qui signifie qu'aujourd'hui V a un an! Woo-hoo
Au cours de la première année d'existence de V, 176 commits ont été envoyés par quatre contributeurs différents, 140 réponses de 12 utilisateurs différents et trop d'opérateurs en double dupliqués pour être pris en compte . Il dispose d'un interprète en ligne , hébergé généreusement par @Dennis, qui a été exécuté près de 8 000 fois depuis décembre .
Ayons un défi pour célébrer l'anniversaire de V! Étant donné que la plupart des fonctionnalités de V sont conçues dans l’esprit de la manipulation des cordes et de l’art ascii , il semble naturel que tout défi qui célèbre V soit lié à l’art ascii. Votre défi pour aujourd'hui est donc de prendre un mot en entrée et de le remodeler sous la forme d'un V. Par exemple, l'entrée "Hello" devrait donner le V suivant:
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
Voici quelques détails sur ce à quoi votre V devrait ressembler. Si la chaîne en entrée est longue de n caractères, le V doit avoir une n*2
hauteur de ligne. La toute première ligne devrait comprendre:
<input string><(n*2) - 1 spaces><input string reversed>
À chaque nouvelle ligne, un espace est ajouté au début et les deux côtés de la chaîne se rapprochent, éliminant ainsi les caractères qui se chevauchent. Jusqu'à la toute dernière ligne, qui n'est que le premier caractère de l'entrée. Les espaces de fin sur chaque ligne sont acceptables, et les sauts de fin sont également autorisés.
Vous pouvez supposer que l'entrée sera toujours un fichier ASCII imprimable sans espace, et vous pouvez utiliser des entrées et des sorties de n'importe quelle méthode raisonnable. Voici d'autres exemples d'entrées:
Happy:
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
HappyppaH
HapppaH
HapaH
HaH
H
Birthday:
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
BirthdayadhtriB
BirthdadhtriB
BirthdhtriB
BirthtriB
BirtriB
BiriB
BiB
B
V!:
V! !V
V! !V
V!V
V
~:
~ ~
~
Bien entendu, puisqu'il s'agit de code-golf , les échappatoires standard sont interdites et votre objectif est d'écrire le programme le plus court possible pour mener à bien cette tâche. Bon golf!
Pour ce que cela vaut, j’ai un faible pour les réponses vim, donc des points bonus imaginaires pour utiliser vim ou V, bien que toutes les langues soient acceptables. :)