L'alfabeto cromosoma


11

introduzione

Le sfide dell'alfabeto sono nel nostro DNA, quindi mostriamolo.

Sfida

Stampa esattamente il seguente testo:

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

Regole

  • È necessario abbinare il caso di ogni lettera
  • Sono consentiti il ​​trascinamento e / o le nuove linee e / o spazi iniziali

vincente

Vince il codice più breve in byte.


14
Non ha molto senso che le prime due righe contengano entrambe B e C quando tutte le altre righe (tranne la sezione centrale) hanno lettere univoche.
Fatalizza il

1
@Fatalize Questo è per rendere la sfida leggermente più interessante
Decadimento beta

5
Personalmente direi che fa il contrario
Fatalizza il

2
Credo che ci sia un errore nella nona riga. Dovrebbe essere "WwXx xX wW ", non "WwXx xXWw", no?
GOTO 0

2
@BetaDecay Fatalize ha ragione, il che rende la sfida più noiosa.
moonheart08

Risposte:


18

Vim (senza strumenti esterni), 106 byte

Newline per chiarezza:

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

Ecco Return, è Right, è Escape, ʌè CTRL-V ed ðè Delete.

animazione da golf


3

Python 2, 230 byte

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) Rimuovi punto e virgola dalla seconda, terza e quarta riga 2) Rimuovi la nuova riga alla fine della prima riga 3) Goditi la tua risposta essendo più corta di quella di daHugLenny 4) Dato che nessuno l'ha ancora detto, benvenuto in PPCG!
Erik the Outgolfer

3

PowerShell v2 +, 175 169 163 154 byte

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

Provalo online!

Abusa del fatto che l'impostazione predefinita Write-Outputalla fine dell'esecuzione inserisce una nuova riga tra gli elementi.

La prima riga costruisce i rami. Eseguiamo il ciclo su due intervalli corrispondenti ai valori ASCII per le lettere maiuscole, ogni iterazione genera un chararray di quella lettera e quella lettera +32(che è il punto ASCII minuscolo). Quel -joinEd insieme in una lunga stringa, poi -splitsu ogni sei elementi (incapsulato in parentesi in modo che siano conservati), seguito da un-ne'' per estrarre gli elementi vuoti come risultato della scissione, formando così un array di stringhe.

Queste stringhe in un array get array-concatenazione di aggiungere sulle WwXx, Yye Zgli elementi, poi un Padrig ht 10per farli tutta la larghezza appropriata. A questo punto abbiamo una matrice di stringhe come la seguente (un elemento per riga).

AaBbCc    
BbCcDd    
EeFfGg    
HhIiJj    
KkLlMm    
NnOoPp    
QqRrSs    
TtUuVv    
   WwXx   
       Yy 
         Z

L'intero array viene reindirizzato a un altro loop per costruire le stringhe con mirroring -joine l'inversione dell'array [9..0].

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

Salviamo le stringhe risultanti in $xe le racchiudiamo tra parentesi per posizionare anche una copia sulla pipeline.

La riga successiva posiziona la zzstringa sulla pipeline, quindi l' $xarray in ordine inverso. Tutti questi sono lasciati in cantiere e l'output è implicito.

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 byte grazie a mazzy.


154 byte - '(.{6})'invece (......)e RightPadinvece spazi di coda.
mazzy

3

Python 2 , 156 byte

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]

Provalo online!

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

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

che codifica quanti spazi anteporre a ciascuna riga ( (-1)*' 'essendo uguale a 0*' ').


2

Python 2, 331 241 229 byte

Sarà più golf dopo.

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 byte

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)

Abbastanza semplice, basato sulla risposta di TimmyD, in un certo senso. Costruisce il braccio in alto a sinistra usando un pezzo davvero poco compresso, quindi fa entrambi gli specchi contemporaneamente attorno a un 'zz' e stampa.

Provalo su Repl.It


2

05AB1E , 48 46 40 38 36 byte

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

-2 byte (e l'opportunità per altri 10 con questo approccio alternativo) grazie a @MagicOctopusUrn .

Provalo online.

Spiegazione:

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

Vedi questo mio suggerimento 05AB1E (sezione Come comprimere numeri interi di grandi dimensioni? ) Per capire perché Ž3ôè 1008ed ƵJè 120.


1
-2 byte usando un approccio maschera:•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
Magic Octopus Urn

1
@MagicOctopusUrn Ah bello, e con un po 'di compressione e built- "abc"in può essere golfato da altri 6: •3ô•può essereŽ3ô ; 120 6 1Dpuò essere ƵJ6XD; …abcA¦«Dus.ιpuò essere žRAu¦«Dl.ι. :)
Kevin Cruijssen il

1
@MagicOctopusUrn Oh, e altri 2 cambiando í.Bí in Tj(funziona solo nella nuova versione, ma non sono sicuro che sia un bug o intenzionale). Quindi implicitamente hai abilitato un risparmio di 10 byte in totale con il tuo approccio alternativo. : D
Kevin Cruijssen,

1
Devi trovarne uno in più per vincere;).
Magic Octopus Urn

1
@MagicOctopusUrn Fine, altri 2 rimossi. ; p In žRAu¦«Dl.ιSalternativa potrebbe essere A¬žR:uSDl.ι, ma sfortunatamente ciò non salverà i byte. E 0м.Binvece di 0ð:è un byte in più anziché in meno ... Kinda sperava che i mirror potessero implicitamente inscatolare aggiungendo spazi finali in modo .Bche non sarebbero necessari, ma forse è meglio che non lo facciano per altre sfide, immagino.
Kevin Cruijssen,

2

Stax , 42 41 38 35 byte

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

Esegui ed esegui il debug

Aggiornamento: si è verificato un errore nella soluzione a 41 byte. (sì, anche se non ha input) Durante la correzione, ho trovato altri 3 byte da radere.

Aggiorna di nuovo: c'è concorrenza in corso, quindi ho rimosso altri 3 byte di contingenza.

Spiegazione: (di una soluzione diversa, ma di dimensioni identiche)

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

Esegui questo


1

Matricks , 105 byte (non competitivi)

Whoa, ho trovato molti bug. L'unica parte difficile di questa sfida è stata la croce nel mezzo. Ciò rende quasi la metà del conteggio dei byte.

Corri con la -A 1bandiera

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}

Spiegazione:

m + / c2 + 66 + * r3 * 32% c2 7 6 # Costruisce il blocco "normale"
v {k - {} 1z-L1Q} # Aggiungi la parte "anomala" sopra
u {q-Lc2k + {} 2b0b0b0a [a0a0u [a89a121] a [u0u90]]} # Crea il 1/4 della strana diagonale
a {Y} u [mQc9a122a122] u {z1cX} # Mirroring del blocco appena creato, aggiungendo
                                             # z minuscole tra le metà

Un altro bug che non ho ancora risolto è che l'ultima parte u{z1cX}non funziona quando si inserisce il taglio dopo il X. Investigherà / risolverà.


1

/// , 229 byte

/*/\/\///^/        *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

Provalo online!


1

PowerShell , 150 byte

($x='AaBbCc
BbCcDd
EeFfGg
HhIiJj
KkLlMm
NnOoPp
QqRrSs
TtUuVv
   WwXx
       Yy
         Z'-split'
'|% *ht 10|%{$_+-join$_[9..0]})
' '*9+'zz'
$x[10..0]

Provalo online!


1

Brainfuck, 456 byte

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

Provalo online!


0

Python 3 , 215 byte (non competitivo)

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

Provalo online!

Prende alcune idee dalle due soluzioni Python 2, ma le applica a un approccio che utilizza join () che sembra risparmiare parecchi byte. È possibile che questo possa essere ulteriormente giocato a golf; Potrei rivederlo più tardi.



@JonathanFrech Python 3 è stato rilasciato molto prima di questa sfida. Questo deve avere il tag "non concorrenziale" per qualche altro motivo.
pepery

@pppery Una cosa che ho notato è che questo post non crea spazi per riempire la regione concava sinistra del cromosoma.
Jonathan Frech,

@squid Posso chiederti perché questa risposta è stata contrassegnata come non competitiva?
Jonathan Frech,

0

Rubino , 177 ... 145 byte

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

Provalo online!


0

Bubblegum, 168 byte

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

Provalo online!

Dal momento che questa è la mia prima presentazione Bubblegum, potrebbe non essere la soluzione ottimale. Si prega di ricontrollare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.