Alfabe Kromozomu


11

Giriş

Alfabe zorlukları DNA'mızda, bu yüzden gösterelim.

Meydan okuma

Aşağıdaki metni tam olarak yazdırın:

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

kurallar

  • Her mektubun büyük harfiyle eşleşmelisiniz
  • Sondaki ve / veya önde gelen satır ve / veya boşluklara izin verilir

Kazanan

Bayt cinsinden en kısa kod kazanır.


14
Diğer tüm satırlar (orta bölüm çubuğu) benzersiz harflere sahip olduğunda, ilk iki satırın hem B hem de C içermesi pek mantıklı değildir.
14'te ölümcül

1
@Fatalize Bu meydan okumayı biraz daha ilginç hale getiriyor
Beta

5
Şahsen bunun tam tersini yaptığını iddia ediyorum
16'da Fatalize

2
9. sırada bir hata olduğuna inanıyorum. "WwXx xXWw " değil, "WwXx xX wW " olmalı, değil mi?
GOTO 0

2
@BetaDecay Fatalize doğru, bu meydan okumayı daha sıkıcı hale getiriyor.
Ocak

Yanıtlar:


18

Vim (harici araç yok), 106 bayt

Açıklık için yeni satırlar:

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

İşte Dönüş, Sağ, Kaçış, ʌCTRL-V ve ðSil.

golf animasyon


3

Python 2,230 bayt

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) İkinci, üçüncü ve dördüncü satırlardan noktalı virgül çıkarın 2) İlk satırın sonundaki satırsonu kaldırın 3) Cevabınızın daHugLenny'ninkinden daha kısa olmasının tadını çıkarın 4) Henüz kimse söylemediğinden, PPCG'ye hoş geldiniz!
Outgolfer Erik

3

PowerShell v2 +, 175 169 163 154 bayt

($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]

Çevrimiçi deneyin!

Write-OutputYürütme sonunda varsayılan öğelerin arasına bir yeni satır ekler.

İlk satır dalları oluşturur. Büyük harflerin ASCII değerlerine karşılık gelen iki aralık üzerinde döngü yaparız, her yineleme charo harfin ve o harfin +32(küçük harf ASCII noktası olan) bir dizisini çıkarır. Bu -join, uzun bir dize halinde, daha sonra -splither altı öğede (parenler içinde kapsüllenir, böylece korunur), ardından -ne''bölünmenin bir sonucu olarak boş öğeleri çıkarmak için bir dizi ve böylece bir dizi dizesi oluşturur.

Bir dizi olsun dizi-birleştirme içinde bu dizeleri üzerine eklemek için WwXx, Yyve Zsonra, elementlerin bir PadRig ht 10onlara tüm uygun genişlik yapmak. Bu noktada, aşağıdaki gibi bir dizi dizimiz var (her satırda bir öğe).

AaBbCc    
BbCcDd    
EeFfGg    
HhIiJj    
KkLlMm    
NnOoPp    
QqRrSs    
TtUuVv    
   WwXx   
       Yy 
         Z

Tüm dizi, yansıtılmış dizeleri -joinve dizi tersine çevirmeyi oluşturmak için başka bir döngüye bağlanır [9..0].

AaBbCc        cCbBaA
BbCcDd        dDcCbB
EeFfGg        gGfFeE
HhIiJj        jJiIhH
KkLlMm        mMlLkK
NnOoPp        pPoOnN
QqRrSs        sSrRqQ
TtUuVv        vVuUtT
   WwXx      xXwW   
       Yy  yY       
         ZZ         

Elde edilen dizeleri $x, boru hattına da bir kopya yerleştirmek için parenler içine kaydederiz.

Sonraki satır, zzdizeyi ardışık $xdüzende , ardından dizi ters sırada yerleştirir. Bunların hepsi boru hattında kalıyor ve çıktı örtük.

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

Mazzy sayesinde -9 bayt.


154 byte - '(.{6})'yerine (......)ve RightPadyerine kuyruk alanlar.
mazzy

3

Python 2 , 156 bayt

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]

Çevrimiçi deneyin!

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

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

bu, her bir satıra kaç boşluk ekleneceğini ( (-1)*' 'eşit olduğu 0*' ') kodlar .


2

Python 2, 331 241 229 bayt

Daha sonra golf olacak.

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

Lua, 212 Bayt

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)

TimmyD'nin cevabına dayanarak yeterince basit. Gerçekten kötü sıkıştırılmış bir yığın kullanarak sol üst kolu oluşturur, ardından her iki aynayı aynı anda bir 'zz' etrafında yapar ve yazdırır.

Repl.It üzerinde deneyin


2

05AB1E , 48 46 40 38 36 bayt

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

-2 bayt (ve bu alternatif yaklaşımla 10 daha fazla fırsat) @MagicOctopusUrn .

Çevrimiçi deneyin.

Açıklama:

Ž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)

Neden Ž3ôolduğunu 1008ve ƵJolduğunu anlamak için bu 05AB1E ucuma bakın ( Büyük tamsayılar nasıl sıkıştırılır? Bölümü )120 .


1
Bir maske yaklaşımı kullanarak -2 bayt:•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
Sihirli Ahtapot Urn

1
Ah güzel ve bazı sıkıştırma ve yerleşik "abc"ile 6 daha golf •3ô•olabilir : olabilir Ž3ô; 120 6 1Dolabilir ƵJ6XD; …abcA¦«Dus.ιolabilir žRAu¦«Dl.ι. :)
Kevin Cruijssen

1
Daha değiştirerek @MagicOctopusUrn Oh, ve 2 í.Bíiçin Tj(sadece yeni sürümde çalışır, ama kesin değil onun bir hata veya kasıtlı değilse). Böylece dolaylı olarak alternatif yaklaşımınızla toplam 10 bayt tasarruf sağladınız. : D
Kevin Cruijssen

1
Kazanmak için bir tane daha bulmalısın;).
Sihirli Ahtapot Urn

1
@MagicOctopusUrn Fine, 2 tane daha kaldırıldı. ; p Ve žRAu¦«Dl.ιSalternatif olarak olabilir A¬žR:uSDl.ι, ama ne yazık ki bu bayt tasarruf olmaz. Ve 0м.Bbunun 0ð:yerine daha az yerine bir bayt daha var ... Kinda aynalar, izleyen boşluklar ekleyerek örtük bir şekilde kutuya girebileceğini umuyordu, bu yüzden gerekli .Bolmayacaktı, ama sanırım diğer zorluklar için değil.
Kevin Cruijssen

2

Stax , 42 41 38 35 bayt

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

Çalıştır ve hata ayıkla

Güncelleme: 41 baytlık çözümde bir hata oluştu. (evet, girişi olmasa da) Düzeltirken, tıraş için 3 bayt daha buldum.

Tekrar güncelleyin: Rekabet devam ediyor, bu yüzden 3 beklenmedik durum baytı daha kaldırdım.

Açıklama: (farklı, ancak aynı boyutta bir çözüm)

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])

Bunu çalıştır


1

Matricks , 105 bayt ( rakipsiz )

Vay, bir sürü böcek buldum. Bu zorluğun tek zor kısmı ortadaki haçtı. Bu, bayt sayısının neredeyse yarısını yapar.

-A 1Bayrakla koş

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}

Açıklama:

m + / c2 + 66 + * r3 * 32% c2 7 6 # "Normal" bloğu oluşturma
v {k - {} 1z-L1Q} # Yukarıdaki "anormal" kısmı ekleyin
u {q-Lc2k + {} 2b0b0b0a [a0a0u [a89a121] a [u0u90]]} # Tuhaf diyagonalin 1 / 4'ü olun
a {Y} u [mQc9a122a122] u {z1cX} # Yeni oluşturulan bloğu yansıtarak ekleyin
                                             Yarılar arasında # küçük harf zs

Henüz düzeltmediğim bir başka hata ise, son bölümün, u{z1cX}kesildikten sonra çalışmamasıdır X. Araştırır / düzeltir.


1

/// , 229 bayt

/*/\/\///^/        *0/AaBbCc^cCbBaA
*1/BbCcDd^dDcCbB
*2/EeFfGg^gGfFeE
*3/HhIiJj^jJiIhH
*4/KkLlMm^mMlLkK
*5/NnOoPp^pPoOnN
*6/QqRrSs^sSrRqQ
*7/TtUuVv^vVuUtT
*8/   WwXx      xXwW
*9/       Yy  yY
/0123456789^ ZZ
^ zz
^ ZZ
9876543210

Çevrimiçi deneyin!



1

Brainfuck, 456 bayt

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

Çevrimiçi deneyin!


0

Python 3 , 215 bayt (Rekabet Etmeyen)

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]]))

Çevrimiçi deneyin!

İki Python 2 çözümünden bazı fikirler alır, ancak bunları birkaç bayt tasarruf etmiş gibi görünen join () kullanarak bir yaklaşıma uygular. Bunun daha fazla golf oynamak mümkündür; Bunu daha sonra tekrar ziyaret edebilirim.



@JonathanFrech Python 3 bu mücadeleden çok önce yayınlandı. Bunun başka bir nedenden dolayı "rakip olmayan" etiketine sahip olması gerekir.
pppery

@pppery Fark ettiğim bir şey, bu yazının kromozomun sol içbükey bölgesini doldurmak için boşluklar oluşturmamasıdır.
Jonathan Frech

squid Bu cevabın neden rakipsiz olarak işaretlendiğini sorabilir miyim?
Jonathan Frech

0

Ruby , 177 ... 145 bayt

puts r=(("%s%s%s\n"*8+"%5s%s\n%9s\n%11s")%[*?a..?c,*?b..?z].map{|x|x.upcase+x}).lines.map{|l|l=l.chop.ljust 10;l+l.reverse},"%11s"%"zz",r.reverse

Çevrimiçi deneyin!


0

Sakız, 168 bayt

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

Çevrimiçi deneyin!

Bu benim ilk Bubblegum başvurum olduğundan, en uygun çözüm olmayabilir. Lütfen tekrar kontrol edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.