Grazie a @KritixiLithos per avermi aiutato con questa sfida!
V è un linguaggio di programmazione che ho scritto in modo da poter utilizzare ed estendere Vim per le sfide del code-golf. Il primo commit è stato il 3 marzo 2016, il che significa che oggi V compie un anno! Woo-hoo
Durante il primo anno di esistenza di V, ci sono stati 176 commit da quattro diversi contributori, 140 risposte da 12 utenti diversi e troppi operatori duplicati rotti da contare . Ha un interprete online , generosamente ospitato da @Dennis, che è stato gestito quasi 8000 volte da dicembre .
Facciamo una sfida per festeggiare il compleanno di V! Poiché la maggior parte delle funzionalità di V sono progettate pensando alla manipolazione delle stringhe e all'arte ascii , sembra naturale che qualsiasi sfida che celebra V debba riguardare l'arte ascii. Quindi la tua sfida per oggi è prendere una parola come input e rimodellare quella parola a forma di V. Ad esempio, l'input "Hello" dovrebbe dare la seguente V:
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
Ecco alcuni dettagli su come dovrebbe essere la tua V. Se la stringa di input è lunga n caratteri, la V dovrebbe essere n*2
alta le righe. La prima riga dovrebbe consistere in:
<input string><(n*2) - 1 spaces><input string reversed>
Su ogni nuova riga, viene aggiunto uno spazio all'inizio e i due lati della stringa si spostano l'uno verso l'altro, rimuovendo eventuali caratteri sovrapposti. Fino all'ultima riga, che è solo il primo carattere di input. Lo spazio bianco finale su ogni riga è accettabile e è consentita anche una nuova riga finale.
Si può presumere che l'input sarà sempre ASCII stampabile senza spazi bianchi e si può prendere l'input e l'output in qualsiasi metodo ragionevole. Ecco alcuni altri input di esempio:
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
~:
~ ~
~
Naturalmente, poiché si tratta di code-golf , le scappatoie standard sono vietate e il tuo obiettivo è quello di scrivere il programma più breve possibile per completare questa attività. Buon golf!
Per quello che vale, ho un debole per le risposte di vim, quindi punti bonus immaginari per l'uso di vim o V, sebbene qualsiasi lingua sia accettabile. :)