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]
Experimente online!
Abusa do fato de que o padrão Write-Output
no final da execução insere uma nova linha entre os elementos.
A primeira linha constrói os ramos. Passamos dois intervalos correspondentes aos valores ASCII para as letras maiúsculas, cada iteração gera uma char
matriz dessa letra e dessa letra +32
(que é o ponto ASCII minúsculo). Isso é -join
editado em uma cadeia longa e, -split
em seguida, a cada seis elementos (encapsulados em parênteses para que sejam preservados), seguido de a -ne''
para extrair os elementos vazios como resultado da divisão, formando assim uma matriz de cadeias.
Essas cordas em uma matriz get matriz concatenação a acrescentar sobre os WwXx
, Yy
e Z
os elementos, em seguida, um Padrig ht 10
para torná-los toda a largura apropriada. Neste ponto, temos uma matriz de seqüências de caracteres como a seguinte (um elemento por linha).
AaBbCc
BbCcDd
EeFfGg
HhIiJj
KkLlMm
NnOoPp
QqRrSs
TtUuVv
WwXx
Yy
Z
Essa matriz inteira é canalizada para outro loop para construir as seqüências espelhadas com -join
e reversão da matriz [9..0]
.
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
Salvamos as seqüências resultantes $x
e as colocamos entre parênteses para também colocar uma cópia no pipeline.
A próxima linha coloca a zz
sequência no pipeline e, em seguida, a $x
matriz na ordem inversa. Tudo isso é deixado no pipeline e a saída está 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 graças ao mazzy.