Алфавітна хромосома


11

Вступ

Виклики алфавіту є в нашій ДНК, тому давайте покажемо це.

Виклик

Надрукуйте наступний текст точно:

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

Правила

  • Ви повинні відповідати регістру кожної літери
  • Дозволено прослуховування та / або провідні рядки та / або пробіли

Перемога

Виграє найкоротший код у байтах.


14
Не має особливого сенсу, що обидва перші рядки містять B і C, коли всі інші рядки (смуга середнього розділу) мають унікальні літери.
Фаталізувати

1
@Fatalize Це зробить виклик трохи цікавішим
бета-розпад

5
Я б особисто заперечував, що це робить навпаки
Fatalize

2
Я вважаю, що в 9-му рядку є помилка. Повинно бути "WwXx xX wW ", а не "WwXx xXWw", чи не так?
GOTO 0

2
@BetaDecay Fatalize має рацію, що робить виклик більш нудним.
moonheart08

Відповіді:


18

Vim (без зовнішніх інструментів), 106 байт

Нові рядки для наочності:

:h<_↵↵↵YZZPllabc♥
:s/./\u&&/g↵
qa6li↵♥q7@a3i ♥fY
i↵    →→↵  →↵→ð♥
ʌHA ♥9l
qbmaʌ99jY$P`ah@bq@b
y11G:g//m0↵P

Ось повернення, це право, це втеча, ʌце CTRL-V і ðвидалення.

гольф анімація


3

Python 2, 230 байт

s='';m=['AaBbCc','BbCcDd','EeFfGg','HhIiJj','KkLlMm','NnOoPp','QqRrSs','TtUuVv','   WwXx',' '*7+'Yy',' '*9+'Z'];
p=lambda l:l.ljust(10)+l[::-1].rjust(10)+'\n';
for l in m:s+=p(l);
s+=' '*9+'zz\n';
for l in m[::-1]:s+=p(l)
print s

1
1) Видаліть крапку з другої, третьої та четвертої рядків 2) Видаліть нову лінію в кінці першого рядка 3) Насолоджуйтесь, що ваша відповідь буде коротшою, ніж 4 даHugLenny 4) Оскільки ніхто ще не сказав цього, ласкаво просимо до PPCG!
Ерік Аутгольфер

3

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на кожні шість елементів (інкапсульовані в парени, щоб вони збереглися), а потім a -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 байт завдяки мазі.


154 байти - '(.{6})'замість них (......)і RightPadзамість хвостових пробілів.
маззи

3

Python 2 , 156 байт

r=('AaBbCc.BbCcDd.EeFfGg.HhIiJj.KkLlMm.NnOoPp.QqRrSs.TtUuVv.   WwXx.%8cy.%10c.%10c'%(89,90,'z')).split('.')
for k in r+r[-2::-1]:s='%-10s'%k;print s+s[::-1]

Спробуйте в Інтернеті!

512/(i**4+47)-1

,1,1,0,3,7,9,9,9,7,3,0,1,1,

який кодує скільки пробілів до кожного рядка ( (-1)*' 'рівний 0*' ').


2

Пітон 2, 331 241 229 байт

Гольф буде пізніше.

l=("AaBbCc|BbCcDd|EeFfGg|HhIiJj|KkLlMm|NnOoPp|QqRrSs|TtUuVv|   WwXx|%sYy"%(" "*7)).split("|");n=0;v=1;p='for i in([8]*8+[6,2])[::v]:print l[n]+" "*i+l[n][::-1];n+=v';exec p;v=-1;n=9;print"{0}ZZ\n{0}zz\n{0}ZZ".format(" "*9);exec p

2

Луа, 212 байт

s=([[         Z
       Yy 
   WwXx   
TtUuVv_QqRrSs_NnOoPp_KkLlMm_HhIiJj_EeFfGg_BbCcDd_AaBbCc    ]]):gsub("_","    \n")S="         zz"for z in s:gmatch"[%w ]+"do k=z..z:reverse()S=k..'\n'..S..'\n'..k end print(S)

Досить простий, заснований на відповіді ТімміД, вид. Створює верхню ліву руку, використовуючи дійсно погано стислий шматок, потім робить обидва дзеркала одразу навколо "zz" та відбитки.

Спробуйте це на Repl.It


2

05AB1E , 48 46 40 38 36 байт

Ž3ô8.DƵJ6XD)bTj»0ð:1žRAu¦«Dl.ιS.;º.∊

-2 байти (і можливість для ще 10 при такому альтернативному підході) завдяки @MagicOctopusUrn .

Спробуйте в Інтернеті.

Пояснення:

Ž3ô            # Push compressed integer 1008
   8.D         # Duplicate it 8 times
      ƵJ       # Push compressed integer 120
        6      # Push 6
         XD    # Push 1 twice
           )   # Wrap all into a list
b              # Convert each to binary
 Tj            # Add leading spaces to each binary-string to make them size 10  
   »           # Then join all strings by newlines
0ð:            # Replace all 0s with spaces
 žR            # Push the string "ABC"
   Au¦«        # Merge the uppercased alphabet minus the first "A" with it
       Dl      # Create a lowercase copy
             # Intersect the uppercase and lowercase strings: "AaBbCcBb..."
           S   # Convert it to a list of characters
1           .; # Replace every 1 with each of these characters in the same order
º              # Then mirror everything vertically without overlap,
 .∊            # and horizontally with the last line overlapping
               # (and output the result implicitly)

Дивіться цей мінний наконечник 05AB1E (розділ Як стискати великі цілі числа? ), Щоб зрозуміти, чому Ž3ôце так 1008і ƵJє 120.


1
-2 байти з використанням підходу до маски:•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
Чарівний восьминіг

1
@MagicOctopusUrn Ах добре, і при деякому стисненні та вбудованому "abc"його можна пограти ще на 6: •3ô•можна Ž3ô; 120 6 1Dможе бути ƵJ6XD; …abcA¦«Dus.ιможе бути žRAu¦«Dl.ι. :)
Кевін Крейссен

1
@MagicOctopusUrn О, і ще 2, змінивши í.Bíна Tj(працює лише в новій версії, але не впевнений, помилка чи навмисна). Тож неявно ви ввімкнули 10-байт збереження в цілому за допомогою свого альтернативного підходу. : D
Кевін Крейссен

1
Ви повинні знайти ще одного, щоб виграти;).
Чарівний восьминіг Урна

1
@MagicOctopusUrn Fine, ще 2 видалено. ; p І, žRAu¦«Dl.ιSможливо, це буде A¬žR:uSDl.ι, але, на жаль, це не збереже байти. І 0м.Bзамість цього 0ð:байт більше, а не менше .. Kinda сподівався, що дзеркала можуть неявно поле, додаючи пробіли, щоб це .Bне було потрібно, але, можливо, краще, вони не мають інших проблем, я думаю.
Кевін Кройсейсен

2

Стакс , 42 41 38 35 байт

înáöêòé{V║»╧å╓ä¥ì√‼╦▓°nlΓΣ▌ê9t☻*$╢√

Запустіть і налагоджуйте його

Оновлення: у 41-байтовому рішенні виникла помилка. (так, хоча він не має вводу) Під час виправлення я знайшов ще 3 байти для гоління.

Оновіть ще раз: Знову конкуренція, тому я видалив ще 3 байти на випадок

Пояснення: (іншого рішення, але однакового розміру)

VA3(        "ABC"
VAD2T       "BCD...VWX"
+3/         concatenate and split into groups of 3
'Y]+        concatenate ["Y"]
{cv\$m      map each string using: copy, lowercase, zip, flatten
.ZzM+       concatenate ["Z", "z"]
|p          palindromize list of strings
m           map each string _ using the rest of the program and implicitly print output
  c%Nh6+H   (-len(_)/2 + 6) * 2
  )         left-pad (npm lol amirite) to length
  A(        right-pad to 10
  :m        mirror (a + a[::-1])

Виконати цей


1

Матриці , 105 байт (неконкурентні)

О, я знайшов багато помилок. Єдиною важкою частиною цього виклику був хрест посередині. Це складає майже половину байт.

Біжи з -A 1прапором

m+/c2+66+*r3*32%c2 7 6v{k-{}1z-L1Q}u{q-Lc2k+{}2b0b0b0a[a0a0u[a89a121]a[u0u90]]}a{Y}u[mQc9a122a122]u{z1cX}

Пояснення:

m + / c2 + 66 + * r3 * 32% c2 7 6 # Побудуйте блок "нормальний"
v {k - {} 1z-L1Q} # Додайте "аномальну" частину вище
u {q-Lc2k + {} 2b0b0b0a [a0a0u [a89a121] a [u0u90]]} # Складіть 1/4 дивної діагоналі
a {Y} u [mQc9a122a122] u {z1cX} # Дзеркало щойно створеного блоку, додаючи
                                             # малі zs між половинками

Ще одна помилка, яку я ще не виправив - це те, що остання частина u{z1cX}не працює, коли ви ставите розріз після X. Буде досліджувати / виправляти.




1

Brainfuck, 456 байт

+[>-[-<]>>]>[->++>++++++>++++>+<<<<]>>+>+>------<.<.>+.<+.>+.<+.<........>.>.<-.>-.<-.-->-.-->.>+++++++[-<<+++.<+++.>+.<+.>+.<+.<........>.>.<-.>-.<-.>-.>.>]<<<<...>>+++.<+++.>+.<+.<......>.>.<-.>-.>.<<<.......>>++.<++.<..>.>.>.<<<.........>>+..>.<<<.........>+..>>.<<<.........>>..>.<<<.......>>-.<-.<..>.>.>.<<<...>>--.<--.>+.<+.<......>.>.<-.>-.>.>+++++++[-<<---.<---.>+.<+.>+.<+.<........>.>.<-.>-.<-.>-.>.>]<<-.<-.>+.<+.>+.<+.<........>.>.<-.>-.<-.>-.

Спробуйте в Інтернеті!


0

Python 3 , 215 байт (не конкуруючий)

p=lambda l:l.ljust(10)+l[::-1].rjust(10)
a=("AaBbCc|BbCcDd|EeFfGg|HhIiJj|KkLlMm|NnOoPp|QqRrSs|TtUuVv|   WwXx|%sYy|%sZ"%(7*' ',9*' ')).split('|')
print('\n'.join([p(x)for x in a]+[' '*9+'zz']+[p(x)for x in a[::-1]]))

Спробуйте в Інтернеті!

Бере деякі ідеї з двох рішень Python 2, але застосовує їх до підходу, використовуючи join (), який, схоже, економить досить багато байтів. Цілком можливо, що це можна додатково пограти в гольф; Я можу переглянути це пізніше.



@JonathanFrech Python 3 був випущений задовго до цього виклику. Це має мати тег "неконкурентоспроможний" з якоїсь іншої причини.
pppery

@pppery Одне, що я помітив, - це те, що цей пост не створює пробілів для заповнення ліво-увігнутої області хромосоми.
Джонатан

@squid Чи можу запитати, чому ця відповідь була позначена як неконкурентна?
Джонатан


0

Bubblegum, 168 байт

00000000: 6dd1 c712 8230 1006 e0fb 3e45 5e85 264d  m....0....>E^.&M
00000010: 7a51 b8a1 14e9 1d91 a757 4632 ce38 9bd3  zQ.......WF2.8..
00000020: e6cb a4ec 1f26 626f dc9d 1ce3 cedd d888  .....&bo........
00000030: 819d f898 62cc ef0c 4272 4ac5 8c62 26a6  ....b...BrJ..b&.
00000040: a744 00e9 21e7 4a41 b150 72f9 2181 5a9e  .D..!.JA.Pr.!.Z.
00000050: 2bad a658 6bd5 b954 416f 8cd6 ec28 7666  +..Xk..TAo...(vf
00000060: 6b34 3a58 bd3d 3823 c5d1 19ec de02 77f2  k4:X.=8#......w.
00000070: 667f a1b8 f8b3 37b9 f0a9 2ecf ebfa b5f5  f.....7.........
00000080: fabc c0b1 1ebc 0879 0574 4648 18fe ea6d  .......y.tFH...m
00000090: c3fc b7e3 ef44 f462 f489 6833 68db 6840  .....D.b..h3h.h@
000000a0: 6894 68e8 0cf2 3d6f                      h.h...=o

Спробуйте в Інтернеті!

Оскільки це моє перше подання Bubblegum, це може бути не найкращим рішенням. Будь ласка, перевірте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.