PowerShell v2 +, 175 169 163 154 bytes
($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]
Pruébalo en línea!
Abusa del hecho de que el valor predeterminado Write-Output
al final de la ejecución inserta una nueva línea entre los elementos.
La primera línea construye las ramas. Hacemos un bucle en dos rangos correspondientes a los valores ASCII para las letras mayúsculas, cada iteración genera una char
matriz de esa letra y esa letra +32
(que es el punto ASCII en minúsculas). Eso se -join
junta en una cadena larga, luego -split
en cada seis elementos (encapsulados en parens para que se conserven), seguido de un -ne''
para extraer los elementos vacíos como resultado de la división, formando así una matriz de cadenas.
Estas cadenas en una matriz get matriz de concatenación para añadir en las WwXx
, Yy
y Z
los elementos, a continuación, un Padrig ht 10
para que se den el ancho apropiado. En este punto tenemos una serie de cadenas como la siguiente (un elemento por línea).
AaBbCc
BbCcDd
EeFfGg
HhIiJj
KkLlMm
NnOoPp
QqRrSs
TtUuVv
WwXx
Yy
Z
Toda esa matriz se canaliza a otro bucle para construir las cadenas reflejadas con -join
una inversión de matriz [9..0]
.
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
Guardamos las cadenas resultantes $x
y las incluimos en parens para colocar también una copia en la tubería.
La siguiente línea coloca la zz
cadena en la tubería, luego la $x
matriz en orden inverso. Todos estos quedan en la tubería y la salida es implícita.
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 bytes gracias a mazzy.