PowerShell v2 +, 175 169 163 154 байта
($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]
Попробуйте онлайн!
Нарушает тот факт, что по умолчанию Write-Output
в конце выполнения вставляется новая строка между элементами.
Первая строка строит ветви. Мы зациклились на двух диапазонах, соответствующих значениям ASCII для заглавных букв, каждая итерация выводит char
массив этой буквы и той буквы +32
(которая является строчной точкой ASCII). Он -join
объединяется в одну длинную строку, затем -split
на каждые шесть элементов (заключенных в скобки, чтобы они были сохранены), а затем - -ne''
для извлечения пустых элементов в результате разбиения, таким образом формируя массив строк.
Эти строки в массиве GET-массива конкатенации , чтобы добавить на WwXx
, Yy
и Z
элементы, а затем в PadRig , ht 10
чтобы сделать их всю необходимую ширину. На данный момент у нас есть массив строк, как показано ниже (один элемент на строку).
AaBbCc
BbCcDd
EeFfGg
HhIiJj
KkLlMm
NnOoPp
QqRrSs
TtUuVv
WwXx
Yy
Z
Весь этот массив передается в другой цикл для создания зеркальных строк -join
и обращения к массиву [9..0]
.
AaBbCc cCbBaA
BbCcDd dDcCbB
EeFfGg gGfFeE
HhIiJj jJiIhH
KkLlMm mMlLkK
NnOoPp pPoOnN
QqRrSs sSrRqQ
TtUuVv vVuUtT
WwXx xXwW
Yy yY
ZZ
Мы сохраняем полученные строки в $x
и заключаем их в скобки, чтобы также поместить копию в конвейер.
Следующая строка помещает zz
строку в конвейер, затем $x
массив в обратном порядке. Все они остаются в конвейере и вывод неявный.
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 байт благодаря маззи.