PowerShell v2 +, 175 169 163 154 byte
($x=(-join(65..67+66..86|%{$_;32+$_}|%{[char]$_})-split'(.{6})'-ne'')+' WwXx'+' Yy'+(' '*9+'Z')|% *ht 10|%{$_+-join$_[9..0]})
' '*9+'zz'
$x[10..0]
Provalo online!
Abusa del fatto che l'impostazione predefinita Write-Output
alla fine dell'esecuzione inserisce una nuova riga tra gli elementi.
La prima riga costruisce i rami. Eseguiamo il ciclo su due intervalli corrispondenti ai valori ASCII per le lettere maiuscole, ogni iterazione genera un char
array di quella lettera e quella lettera +32
(che è il punto ASCII minuscolo). Quel -join
Ed insieme in una lunga stringa, poi -split
su ogni sei elementi (incapsulato in parentesi in modo che siano conservati), seguito da un-ne''
per estrarre gli elementi vuoti come risultato della scissione, formando così un array di stringhe.
Queste stringhe in un array get array-concatenazione di aggiungere sulle WwXx
, Yy
e Z
gli elementi, poi un Padrig ht 10
per farli tutta la larghezza appropriata. A questo punto abbiamo una matrice di stringhe come la seguente (un elemento per riga).
AaBbCc
BbCcDd
EeFfGg
HhIiJj
KkLlMm
NnOoPp
QqRrSs
TtUuVv
WwXx
Yy
Z
L'intero array viene reindirizzato a un altro loop per costruire le stringhe con mirroring -join
e l'inversione dell'array [9..0]
.
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
Salviamo le stringhe risultanti in $x
e le racchiudiamo tra parentesi per posizionare anche una copia sulla pipeline.
La riga successiva posiziona la zz
stringa sulla pipeline, quindi l' $x
array in ordine inverso. Tutti questi sono lasciati in cantiere e l'output è implicito.
PS C:\Tools\Scripts\golfing> .\alphabet-chromosome.ps1
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
zz
ZZ
Yy yY
WwXx xXwW
TtUuVv vVuUtT
QqRrSs sSrRqQ
NnOoPp pPoOnN
KkLlMm mMlLkK
HhIiJj jJiIhH
EeFfGg gGfFeE
BbCcDd dDcCbB
AaBbCc cCbBaA
-9 byte grazie a mazzy.