Das Alphabet-Chromosom

11

Einführung

Alphabet-Herausforderungen liegen in unserer DNA, also lasst es uns zeigen.

Herausforderung

Drucken Sie den folgenden Text genau aus:

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

Regeln

  • Sie müssen den Fall jedes Buchstabens abgleichen
  • Nachfolgende und / oder führende Zeilenumbrüche und / oder Leerzeichen sind zulässig

Gewinnen

Der kürzeste Code in Bytes gewinnt.

Beta-Zerfall
quelle
14
Es macht wenig Sinn, dass die ersten beiden Zeilen B und C enthalten, wenn alle anderen Zeilen (außer dem Mittelteil) eindeutige Buchstaben haben.
Fatalize
1
@Fatalize Das macht die Herausforderung etwas interessanter
Beta Decay
5
Ich persönlich würde behaupten, dass es das Gegenteil tut
Fatalize
2
Ich glaube, es gibt einen Fehler in der 9. Zeile. Sollte "WwXx xX wW " sein, nicht "WwXx xXWw", nicht wahr?
GOTO 0
2
@BetaDecay Fatalize ist richtig, das macht die Herausforderung langweiliger.
Moonheart08

Antworten:

18

Vim (keine externen Tools), 106 Bytes

Newlines für Klarheit:

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

Hier ist Return, ist Right, ist Escape, ʌist STRG-V und ðist Delete.

Golfanimation

Lynn
quelle
3

Python 2, 230 Bytes

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
Andrew Dunai
quelle
1
1) Entfernen Sie das Semikolon aus der zweiten, dritten und vierten Zeile. 2) Entfernen Sie die neue Zeile am Ende der ersten Zeile. 3) Genießen Sie, dass Ihre Antwort kürzer als die von daHugLenny ist.
Erik der 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]

Probieren Sie es online aus!

Missbraucht die Tatsache, dass die Standardeinstellung Write-Outputam Ende der Ausführung eine neue Zeile zwischen den Elementen einfügt.

Die erste Zeile erstellt die Zweige. Wir durchlaufen zwei Bereiche, die den ASCII-Werten für die Großbuchstaben entsprechen. Jede Iteration gibt ein charArray dieses Buchstabens und dieses Buchstabens aus +32(dies ist der ASCII-Punkt in Kleinbuchstaben). Das wird -joinzu einer langen Zeichenfolge zusammengefasst, dann -splitzu jeweils sechs Elementen (in Parens eingekapselt, damit sie erhalten bleiben), gefolgt von a -ne'', um die leeren Elemente als Ergebnis der Aufteilung herauszuziehen und so eine Reihe von Zeichenfolgen zu bilden.

Diese Strings in einem Array get Array-Verkettung hinzuzufügen auf den WwXx, Yyund ZElemente, dann eine PadRig ht 10sie alle die entsprechende Breite zu machen. Zu diesem Zeitpunkt haben wir ein Array von Zeichenfolgen wie die folgenden (ein Element pro Zeile).

AaBbCc    
BbCcDd    
EeFfGg    
HhIiJj    
KkLlMm    
NnOoPp    
QqRrSs    
TtUuVv    
   WwXx   
       Yy 
         Z

Das gesamte Array wird an eine andere Schleife weitergeleitet, um die gespiegelten Zeichenfolgen mit -joinund Array-Umkehrung zu erstellen [9..0].

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

Wir speichern die resultierenden Zeichenfolgen in $xund schließen sie in Parens ein, um auch eine Kopie in der Pipeline zu platzieren.

In der nächsten Zeile wird die zzZeichenfolge in der Pipeline und dann das $xArray in umgekehrter Reihenfolge platziert. All dies verbleibt in der Pipeline und die Ausgabe ist implizit.

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 dank mazzy.

AdmBorkBork
quelle
154 Bytes - '(.{6})'stattdessen (......)und RightPadstattdessen Leerzeichen.
Mazzy
3

Python 2 , 156 Bytes

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]

Probieren Sie es online aus!

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

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

Hiermit wird codiert, wie viele Leerzeichen jeder Zeile vorangestellt werden sollen ( (-1)*' 'gleich 0*' ').

Lynn
quelle
2

Python 2, 331 241 229 Bytes

Werde später mehr Golf spielen.

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
Akrolith
quelle
2

Lua, 212 Bytes

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)

Einfach genug, basierend auf TimmyDs Antwort. Baut den oberen linken Arm mit einem wirklich schlecht komprimierten Block auf, macht dann beide Spiegel gleichzeitig um ein 'zz' und druckt.

Versuchen Sie es auf Repl.It.

Ein Taco
quelle
2

05AB1E , 48 46 40 38 36 Bytes

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

-2 Bytes (und die Möglichkeit für 10 weitere mit diesem alternativen Ansatz) dank @MagicOctopusUrn .

Probieren Sie es online aus.

Erläuterung:

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

Sehen Sie diese 05AB1E Spitze Mine (Abschnitt Wie große natürliche Zahlen zu komprimieren? ) Zu verstehen , warum Ž3ôist 1008und ƵJist 120.

Kevin Cruijssen
quelle
1
-2 Bytes mit einem Maskenansatz:•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
Magic Octopus Urn
1
@MagicOctopusUrn Ah schön, und mit etwas Kompression und dem eingebauten "abc"kann es um 6 weitere Golf gespielt werden: •3ô•kann sein Ž3ô; 120 6 1Dkann sein ƵJ6XD; …abcA¦«Dus.ιkann sein žRAu¦«Dl.ι. :)
Kevin Cruijssen
1
@MagicOctopusUrn Oh, und 2 weitere durch Ändern í.Bíauf Tj(funktioniert nur in der neuen Version, aber nicht sicher, ob es ein Fehler oder beabsichtigt ist). Sie haben also implizit mit Ihrem alternativen Ansatz eine Gesamtsparung von 10 Byte aktiviert. : D
Kevin Cruijssen
1
Du musst noch einen finden, um zu gewinnen;).
Magic Octopus Urn
1
@MagicOctopusUrn Fein, 2 weitere entfernt. ; p Und žRAu¦«Dl.ιSkönnte alternativ sein A¬žR:uSDl.ι, aber das spart leider keine Bytes. Und 0м.Bstatt 0ð:ist ein Byte mehr statt weniger. Ich hoffte irgendwie, dass die Spiegel implizit durch Hinzufügen von Leerzeichen eingefügt werden könnten, damit .Bdies nicht notwendig wäre, aber vielleicht ist es besser, dass sie es nicht für andere Herausforderungen tun, denke ich.
Kevin Cruijssen
2

Stax , 42 41 38 35 Bytes

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

Führen Sie es aus und debuggen Sie es

Update: Es gab einen Fehler in der 41-Byte-Lösung. (Ja, obwohl es keine Eingabe hat) Während ich es reparierte, fand ich 3 weitere Bytes zum Rasieren.

Erneutes Update: Es ist Wettbewerb im Gange, also habe ich 3 weitere Kontingenzbytes entfernt.

Erläuterung: (einer anderen, aber gleich großen Lösung)

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

Führen Sie diesen aus

rekursiv
quelle
1

Matricks , 105 Bytes (nicht konkurrierend )

Ich habe viele Fehler gefunden. Der einzige schwierige Teil dieser Herausforderung war das Kreuz in der Mitte. Das macht fast die Hälfte der Bytes.

Lauf mit der -A 1Flagge

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}

Erläuterung:

m + / c2 + 66 + * r3 * 32% c2 7 6 # Konstruieren Sie den "normalen" Block
v {k - {} 1z-L1Q} # Fügen Sie oben den "abnormalen" Teil hinzu
u {q-Lc2k + {} 2b0b0b0a [a0a0u [a89a121] a [u0u90]]} # Machen Sie das 1/4 der seltsamen Diagonale
a {Y} u [mQc9a122a122] u {z1cX} # Spiegeln Sie den gerade erstellten Block und fügen Sie ihn hinzu
                                             # Kleinbuchstaben zs zwischen den Hälften

Ein weiterer Fehler, den ich noch nicht behoben habe, ist, dass der letzte Teil u{z1cX}nicht funktioniert, wenn Sie den Schnitt nach dem setzen X. Wird untersuchen / beheben.

Blau
quelle
1

/// , 229 Bytes

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

Probieren Sie es online aus!

Erik der Outgolfer
quelle
1

Brainfuck, 456 Bytes

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

Probieren Sie es online aus!

Orthoplex
quelle
0

Python 3 , 215 Bytes (nicht konkurrierend)

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

Probieren Sie es online aus!

Übernimmt einige Ideen aus den beiden Python 2-Lösungen, wendet sie jedoch auf einen Ansatz mit join () an, der einige Bytes zu sparen scheint. Es ist möglich, dass dies weiter gespielt werden kann; Ich könnte das später noch einmal wiederholen.

Stellen Sie Monica wieder her
quelle
Beachten Sie, dass Antworten nicht mehr als nicht konkurrierend markiert werden müssen .
Jonathan Frech
@ JonathanFrech Python 3 wurde lange vor dieser Herausforderung veröffentlicht. Dies muss aus einem anderen Grund das Tag "nicht konkurrierend" haben.
pppery
@pppery Eine Sache, die mir aufgefallen ist, ist, dass dieser Beitrag keine Leerzeichen schafft, um die linkskonkave Region des Chromosoms zu füllen.
Jonathan Frech
@squid Darf ich fragen, warum diese Antwort als nicht konkurrierend markiert wurde?
Jonathan Frech
0

Ruby , 177 ... 145 Bytes

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

Probieren Sie es online aus!

GB
quelle
0

Bubblegum, 168 Bytes

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

Probieren Sie es online aus!

Da dies meine erste Bubblegum-Einreichung ist, ist sie möglicherweise nicht die optimale Lösung. Bitte nochmal nachprüfen.

Orthoplex
quelle