Drucken Sie das Periodensystem


40

Ihre Herausforderung besteht darin, diesen Text auszudrucken / auszugeben / zurückzugeben:

 _____                                                                                                 _____
|  1  |                                                                                               |  2  |
|  H  |                                                                                               |  He |
|_____|_____                                                             _____________________________|_____|
|  3  |  4  |                                                           |  5  |  6  |  7  |  8  |  9  |  10 |
|  Li |  Be |                                                           |  B  |  C  |  N  |  O  |  F  |  Ne |
|_____|_____|                                                           |_____|_____|_____|_____|_____|_____|
|  11 |  12 |                                                           |  13 |  14 |  15 |  16 |  17 |  18 |
|  Na |  Mg |                                                           |  Al |  Si |  P  |  S  |  Cl |  Ar |
|_____|_____|___________________________________________________________|_____|_____|_____|_____|_____|_____|
|  19 |  20 |  21 |  22 |  23 |  24 |  25 |  26 |  27 |  28 |  29 |  30 |  31 |  32 |  33 |  34 |  35 |  36 |
|  K  |  Ca |  Sc |  Ti |  V  |  Cr |  Mn |  Fe |  Co |  Ni |  Cu |  Zn |  Ga |  Ge |  As |  Se |  Br |  Kr |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  37 |  38 |  39 |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  48 |  49 |  50 |  51 |  52 |  53 |  54 |
|  Rb |  Sr |  Y  |  Zr |  Nb |  Mo |  Tc |  Ru |  Rh |  Pd |  Ag |  Cd |  In |  Sn |  Sb |  Te |  I  |  Xe |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  55 |  56 |  57 \  72 |  73 |  74 |  75 |  76 |  77 |  78 |  79 |  80 |  81 |  82 |  83 |  84 |  85 |  86 |
|  Cs |  Ba |  La /  Hf |  Ta |  W  |  Re |  Os |  Ir |  Pt |  Au |  Hg |  Tl |  Pb |  Bi |  Po |  At |  Rn |
|_____|_____|_____\_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  87 |  88 |  89 / 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 |
|  Fr |  Ra |  Ac \  Rf |  Db |  Sg |  Bh |  Hs |  Mt |  Ds |  Rg |  Cn |  Nh |  Fl |  Mc |  Lv |  Ts |  Og |
|_____|_____|_____/_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|

                  ____________________________________________________________________________________ 
                  \  58 |  59 |  60 |  61 |  62 |  63 |  64 |  65 |  66 |  67 |  68 |  69 |  70 |  71 \
                  /  Ce |  Pr |  Nd |  Pm |  Sm |  Eu |  Gd |  Tb |  Dy |  Ho |  Er |  Tm |  Yb |  Lu /
                  \_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____\
                  /  90 |  91 |  92 |  93 |  94 |  95 |  96 |  97 |  98 |  99 | 100 | 101 | 102 | 103 /
                  \  Th |  Pa |  U  |  Np |  Pu |  Am |  Cm |  Bk |  Cf |  Es |  Fm |  Md |  No |  Lr \
                  /_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____/

Regeln:

  • Die Anzahl der Leerzeilen zwischen den beiden Teilen kann beliebig sein (einschließlich 0).
  • Jeder Zeile können Leerzeichen vorangestellt und angehängt werden, solange die beiden Teile korrekt aussehen und der zweite Teil mindestens ein Leerzeichen mehr eingerückt ist als der erste.
  • Möglicherweise müssen Zeilenumbrüche und / oder Leerzeichen angehängt / vorangestellt werden.
  • Sie dürfen keine Tabulatoren als Abstand verwenden (solange es keinen Interpreter gibt, der sie korrekt durch Leerzeichen ersetzt).
  • Aufgrund eines Fehlers von mir können Sie sich dafür entscheiden, ______ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ die erste Zeile des zweiten Teils zu verwenden.

Daten:

Sie können diesen Text als Referenz verwenden (aber nicht als Eingabe):
Inhalt: Symbol, Ordnungszahl, Gruppe, Periodengruppen 8 & 9 und Perioden 4-17 werden für den zweiten Teil verwendet.

H 1 1 1
He 2 18 1
Li 3 1 2
Be 4 2 2
B 5 13 2
C 6 14 2
N 7 15 2
O 8 16 2
F 9 17 2
Ne 10 18 2
Na 11 1 3
Mg 12 2 3
Al 13 13 3
Si 14 14 3
P 15 15 3
S 16 16 3
Cl 17 17 3
Ar 18 18 3
K 19 1 4
Ca 20 2 4
Sc 21 3 4
Ti 22 4 4
V 23 5 4
Cr 24 6 4
Mn 25 7 4
Fe 26 8 4
Co 27 9 4
Ni 28 10 4
Cu 29 11 4
Zn 30 12 4
Ga 31 13 4
Ge 32 14 4
As 33 15 4
Se 34 16 4
Br 35 17 4
Kr 36 18 4
Rb 37 1 5
Sr 38 2 5
Y 39 3 5
Zr 40 4 5
Nb 41 5 5
Mo 42 6 5
Tc 43 7 5
Ru 44 8 5
Rh 45 9 5
Pd 46 10 5
Ag 47 11 5
Cd 48 12 5
In 49 13 5
Sn 50 14 5
Sb 51 15 5
Te 52 16 5
I 53 17 5
Xe 54 18 5
Cs 55 1 6
Ba 56 2 6
La 57 3 6
Hf 72 4 6
Ta 73 5 6
W 74 6 6
Re 75 7 6
Os 76 8 6
Ir 77 9 6
Pt 78 10 6
Au 79 11 6
Hg 80 12 6
Tl 81 13 6
Pb 82 14 6
Bi 83 15 6
Po 84 16 6
At 85 17 6
Rn 86 18 6
Fr 87 1 7
Ra 88 2 7
Ac 89 3 7
Rf 104 4 7
Db 105 5 7
Sg 106 6 7
Bh 107 7 7
Hs 108 8 7
Mt 109 9 7
Ds 110 10 7
Rg 111 11 7
Cn 112 12 7
Nh 113 13 7
Fl 114 14 7
Mc 115 15 7
Lv 116 16 7
Ts 117 17 7
Og 118 18 7
Ce 58 4 8
Pr 59 5 8
Nd 60 6 8
Pm 61 7 8
Sm 62 8 8
Eu 63 9 8
Gd 64 10 8
Tb 65 11 8
Dy 66 12 8
Ho 67 13 8
Er 68 14 8
Tm 69 15 8
Yb 70 16 8
Lu 71 17 8
Th 90 4 9
Pa 91 5 9
U 92 6 9
Np 93 7 9
Pu 94 8 9
Am 95 9 9
Cm 96 10 9
Bk 97 11 9
Cf 98 12 9
Es 99 13 9
Fm 100 14 9
Md 101 15 9
No 102 16 9
Lr 103 17 9

Integrierte Elemente, die Informationen zum Periodensystem der Elemente enthalten, sind zulässig, sollten jedoch getrennt von nicht integrierten Lösungen angezeigt werden.
Der kürzeste Code pro Sprache gewinnt!


3
@dzaima Can nutzen wir die Kraft des IM INTERNET ?
Feathercrown

2
@Feathercrown ziemlich sicher, dass als Standard-Schlupfloch zählt
dzaima


2
Arbeiten an einer 400-ish-Byte-Antwort, die alles aus dem Wasser sprengen kann ... in 10 Tagen lol.
Magic Octopus Urn

7
Diese Schrägstriche sind rein böse. PURE EVIL I TELLS YA!
Magic Octopus Urn

Antworten:


12

Bubblegum , 535 Bytes

0000000: e0 0c 4a 02 0f 5d 00 10 17 f0 84 1b a9 df 70 5a  ..J..]........pZ
0000010: a9 c3 a0 9d ad 4f 8b 91 5d a2 33 5c b1 1d 4d 48  .....O..].3\..MH
0000020: 0d 80 c4 80 7f da b5 6f 8a 4a 45 20 34 51 d7 2c  .......o.JE 4Q.,
0000030: bc 47 4c ea c5 45 24 db a1 3d 46 42 e0 c8 51 ed  .GL..E$..=FB..Q.
0000040: b6 b8 2b fb 42 dd 7b 44 bc e2 bf a8 c8 80 be 8a  ..+.B.{D........
0000050: 30 2b e1 c7 39 c6 41 30 36 c6 c2 93 0b b2 ac 42  0+..9.A06......B
0000060: 06 5b bd b7 f9 40 11 9e 57 78 ff 0f 8a 45 f8 d7  .[...@..Wx...E..
0000070: b9 ea 6c 8a 6c e5 bf bb 9c f5 18 db 98 85 13 cc  ..l.l...........
0000080: d3 a8 38 9c 55 fe b2 f1 31 1d e0 0e 67 84 b6 48  ..8.U...1...g..H
0000090: 8e 68 2a 8a c6 99 0a 13 1b 10 f0 b5 e2 e0 43 02  .h*...........C.
00000a0: 6f 52 b0 3e d5 27 a9 eb a4 99 4e b2 c2 8b 51 49  oR.>.'....N...QI
00000b0: 9b 7e 46 99 22 31 4f 8c 70 6d 16 b4 a7 79 01 08  .~F."1O.pm...y..
00000c0: 42 01 a8 af 98 d1 38 d3 77 35 c9 3f fc f5 ae 88  B.....8.w5.?....
00000d0: 47 be 91 a0 ab ac ab b7 04 9a fc 81 60 92 61 a1  G...........`.a.
00000e0: 54 f9 92 46 2f bd 70 20 ba dc 29 63 35 29 c4 48  T..F/.p ..)c5).H
00000f0: be ee 7f 3d d6 8c 1e b9 f3 ab 17 23 0e 1d 86 2c  ...=.......#...,
0000100: d4 28 ce 4a 46 df 6e 3a c3 25 7d 3f 1b e4 3c 03  .(.JF.n:.%}?..<.
0000110: c9 1f 38 96 30 1e c9 6e de fa 26 8f a1 59 18 69  ..8.0..n..&..Y.i
0000120: 68 9a 35 c4 42 56 2a 6f b2 3b 3f b3 ae 60 96 a8  h.5.BV*o.;?..`..
0000130: 5d c4 9d 0d cc 0b d6 ec b9 58 28 d3 3c bb 0d f3  ]........X(.<...
0000140: b6 56 1d b2 f8 da 3b f1 3c 11 9e e7 56 c8 20 27  .V....;.<...V. '
0000150: 76 65 3e d9 1e 17 e5 d2 4f 65 8e 83 c2 27 5a bf  ve>.....Oe...'Z.
0000160: 1f 80 bf f4 4b 78 b0 0e 3f 1e 4d 96 63 b9 65 5a  ....Kx..?.M.c.eZ
0000170: 34 43 c8 9a a9 8e 62 5a cc af ab 10 ff 26 1f ae  4C....bZ.....&..
0000180: 03 ef 4c 8f ba 09 b8 1e 7a 1e bb 5d 77 d3 f8 06  ..L.....z..]w...
0000190: 71 53 67 60 26 91 28 81 2e 5e bc 84 9f 48 cc ce  qSg`&.(..^...H..
00001a0: 60 ec b4 b3 fa 27 32 60 27 98 63 a3 80 66 65 d2  `....'2`'.c..fe.
00001b0: ed 0b af e7 ba d1 d8 85 d3 af 93 7f a2 48 15 68  .............H.h
00001c0: a8 78 74 f8 ed 6f 6b 25 5f ca 7d 28 fb 0c 94 ce  .xt..ok%_.}(....
00001d0: 7a fc 6e b6 32 88 6a 62 b3 84 b8 98 d3 b9 01 73  z.n.2.jb.......s
00001e0: e4 76 07 3e 4e a0 15 82 1b 4a e1 89 13 75 4c ee  .v.>N....J...uL.
00001f0: 09 06 05 75 cc 0a 51 88 38 31 f6 7e e8 f8 74 b7  ...u..Q.81.~..t.
0000200: 59 9c e6 00 53 4f e7 80 ae 8c a5 85 55 e7 08 ae  Y...SO......U...
0000210: 84 69 18 84 dc c0 00                             .i.....

Verwendet LZMA-Komprimierung.

Probieren Sie es online!


2
Höfliche Anfrage; Verwenden Sie eine Sprache, die Sie selbst erfunden haben ?! (Auch wenn es unter "Scherzsprachen" kategorisiert ist ?!)
Grimmig

9
@Grim Nein, es ist kein Betrug, da die Sprache vor der Herausforderung existierte. Viele, viele, viele Benutzer verwenden ihre eigenen Sprachen (einschließlich meiner).
DJMcMayhem

13
Leider haben viele, viele Benutzer (einschließlich meiner selbst) keine Ahnung, auf was Sie als Golfer in etwa 99% der Fälle stehen! Trotzdem interessante Lektüre: D
Grim

@Grim IMO es wird nicht als Schummeln angesehen, warum sollte jemand eine andere Programmiersprache erstellen, als sie zu verwenden?
Nur ASCII

8
Um es zu verkaufen. $$$!
CalculatorFeline

12

Excel VBA, 1.023 1.020 990 983 975 595 495 Bytes

Vollständige subRoutine, die keine Eingabe vornimmt und das Periodensystem auf den Bereich [A1:R10]des ActiveSheetObjekts ausgibt . Beachten Sie, dass Excel (soweit ich weiß) keine Kringel an den Rändern implementieren kann. Daher wird bei dieser Implementierung stattdessen ein farbiger roter Rand verwendet, um die Lanthanoid- und Actinoid-Reihen anzuzeigen.

Sub p
Dim r as Range
For each r in[A1,R1,A2:B2,M2:R2,A3:B3,M3:R3,A4:R4,A5:R5,A6:C6,D9:Q9,D6:R6,A7:C7,D10:Q10,D7:R7]
i=i+1
r=i &vbLf &Trim(Mid("  HHeLiBe B C N O FNeNaMgAlSi P SClAr KCaScTi VCrMnFeCoNiCuZnGaGeAsSeBrKrRbSr YZrNbMoTcRuRhPdAgCdInSnSbTe IXeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTa WReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPa UNpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg",2*i,2))
r.Borders.LineStyle=1
Next
[D6:D7,D9:D10,R9:R10].Borders(7).Color=255
[A:R].HorizontalAlignment=3
End Sub

-3 Bytes für Whitespace

-30 Bytes für das Ändern von Range("A1:R10")in [A1:R10], das Entfernen von Leerzeichen aus allen a "some stuff"Aufrufen und das Ändern des Begrenzers von ","in" "

-7 Bytes für den Wechsel Range("D6:D7,D9:D10,R9:R10")zu[D6:D7,D9:D10,R9:R10]

-8 Bytes für den Wechsel von String-Zellenadressen zu [...]umschlossenen Zellenreferenzen

-380 Bytes dank @Alexander (Nummerierung aus den Daten entfernt und stattdessen eine for-Schleife verwendet)

-100 Bytes zum Konvertieren von Arrays in Stringund Verwenden von MidFunktionen

Ausgabe

PTable.xlsm


5
Implementiert nicht die Zick-Zack ...
Boboquack

6
@boboquack, ich konnte keinen Weg finden, Zick-Zack zu machen. Deshalb habe ich an ihrer Stelle eine rote Linie eingefügt, um diesen Unterschied anzuzeigen. Sie sind links von den Zellen sichtbar D6:D7undD9:D10
Taylor Scott

1
@TaylorScott Gibt es eine Möglichkeit, die Nummerierung in dieser Zeichenfolge zu automatisieren, um Platz zu sparen?
Alexander

1
@TaylorScott IMO sollten Sie dies als nicht konkurrierend markieren, da es die Anforderungen nicht vollständig erfüllt: einschließlich der Schrägstriche und Sie verwenden keine Pipe-Zeichen.
FantaC

1
@tfbninja oh und eine letzte Anmerkung - das (nicht konkurrierende) Tag <s> ist </ s> wurde für Antworten reserviert, bei denen die Sprache neuer als die Frage ist - diese Regel wurde seitdem aus der Community entfernt, jedoch umso mehr Das passende Tag, um in diesem Fall vorzuschlagen, wäre immer noch ein (betrügerisches) oder ähnliches Tag gewesen, ähnlich wie das auf meiner anderen Antwort auf diese Frage
Taylor Scott,

9

JavaScript (ES6), 756 bis 750 Byte

j=i=1
r=s=>s[0].replace(/.(\d+)/g,(s,n)=>s[0].repeat(n))
f=s=>[(s=s[0].match(/../g)).map(_=>(i>99?` `:`  `)+i+(i++>9?` `:`  `)),s.map(s=>`  ${s} `),s.map(_=>r`_5`)].map(a=>a.join`|`)
g=(a,b,c)=>a.map((s,i)=>s+b[i]+c[i])
document.write(r`<pre> _5 97_5
|`+[...g(f`H `,[s=r`| 95|`,s,r`|_5 61_29|`],f`He`),...g(f`LiBe`,[s=r`| 59|`,s,s],f`B C N O F Ne`),...g(f`NaMg`,[s,s,r`|_59|`],f`AlSiP S ClAr`),...f`K CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKr`,...f`RbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI Xe`,...g(f`CsBaLa`,(a=f`CePrNdPmSmEuGdTbDyHoErTmYbLu`,`\\/\\`),f`HfTaW ReOsIrPtAuHgTlPbBiPoAtRn`),...g(f`FrRaAc`,(a=[...a,...f`ThPaU NpPuAmCmBkCfEsFmMdNoLr`],`/\\/`),f`RfDbSgBhHsMtDsRgCnNhFlMcLvTsOg`)].join`|
|`+r`|

 18_84
 `+a.map(s=>r` 17`+`\\/`[j^=1]+s+`\\/`[j]).join`
 `)

Erläuterung:

  • a enthält die (formatierten) Lanthaniden und Actiniden
  • j wird verwendet, um zu verfolgen, welches Zeichen verwendet wird, um den Zickzack der Lanthaniden und Actiniden zu zeichnen
  • iist einfach die Nummer des nächsten zu formatierenden Elements. Obwohl es nicht unbedingt erforderlich ist, die Elemente in der richtigen Reihenfolge zu formatieren, spart dies meiner Meinung nach ein kleines Byte.
  • rist eine Lauflängendecodierungsfunktion. Es wird erwartet, dass es mit einem Template-String-Parameter aufgerufen wird. Durch eine beliebige Zahl in der Zeichenfolge wird das vorangegangene Zeichen so oft wiederholt, z. B. r`_5`wie `_____`(aber natürlich 2 Byte kürzer). Ich hatte ursprünglich eine anspruchsvollere Version, die damit umgehen konnte, r`${i<100} `+i+r`${i++<10} `aber es stellte sich heraus, dass sie kürzer war, um das als Sonderfall zu halten.
  • fist eine Elementformatierungsfunktion. Es wird erwartet, dass der Aufruf mit einem Template-String-Parameter erfolgt, der die Elemente als Zeichenpaare enthält (Leerzeichen für Namen von Einzelzeichenelementen). Es wird ein Array mit drei Zeichenfolgen zurückgegeben, eine für die Elementnummern, eine für die Elementnamen und eine für die Unterstreichungen. Wenn mehr als ein Element formatiert ist, werden sie mit einem |Trennzeichen verbunden.
  • gist eine Klebefunktion. Es erwartet, dass es mit drei Arrays aufgerufen wird (der zweite und dritte Parameter können Zeichenfolgen sein, wenn nur ein Zeichen benötigt wird) und gibt ein einzelnes Array mit allen entsprechenden Zeichenfolgen zurück, die zusammen verkettet sind.

Die ersten drei Elementreihen werden behandelt, indem die formatierten Elemente von jeder Seite mit einer angemessenen Menge an Platz geklebt werden. Die vierte und fünfte Reihe benötigen keinen Klebstoff. Die sechste und siebte Reihe werden durch Kleben der formatierten Elemente von jeder Seite mit dem entsprechenden Zickzack behandelt. Die 21 Reihen werden dann mit Rahmen |und Zeilenumbrüchen zusammengefügt. Währenddessen erhalten die 6 Reihen der Lanthaniden und Actiniden ihre Polsterung und ihren Zickzack und werden mit Zeilenumbrüchen zusammengefügt. Zum Schluss werden die Stücke mit den notwendigen restlichen Formatierungselementen verkettet. Bearbeiten: 6 Bytes gespart, weil ich vergessen habe, nach der Entwicklung des Codes wörtliche Zeilenumbrüche zu ersetzen.

Wenn eine vollständige Tabelle mit den Lanthanoiden und Actinoiden in situ akzeptabel ist, dann für 556 Bytes:

document.write(`<pre>`+[[/\w./g,`|  $& |`],[/\|\|/g,`|`],[/(.*)-(.*)/g,(_,l,r)=>l+` `.repeat(193-r.length-l.length)+r],[/\n.*/g,s=>s.replace(/ \w./g,_=>(++i<100?` `:``)+i+(i<10?` `:``))+s+s.replace(/  \w. /g,`_____`)],[/ {5}(?=[^]{191}\d)/g,`_____`],[/_ _/g,`___`]].reduce((s,[r,t])=>s.replace(r,t),`-
H -He
LiBe-B C N O F Ne
NaMg-AlSiP S ClAr
K CaSc-TiV CrMnFeCoNiCuZnGaGeAsSeBrKr
RbSrY -ZrNbMoTcRuRhPdAgCdInSnSbTeI Xe
CsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRn
FrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg`,i=0))

Erläuterung: Eine Zeichenfolge enthält die Liste der Elemente, -denen als Formatierungselemente ein Zeilenumbruch hinzugefügt wurde. Eine Reihe von Ersetzungen wird verwendet, um die Liste der Elemente in die gewünschte Tabelle umzuwandeln.

  1. Jedes Element ist innerhalb eines Paares von |s aufgefüllt .
  2. Aufeinanderfolgende |s werden dann gelöscht.
  3. -s werden durch genügend Abstand ersetzt, um eine Breite von 193 Zeichen zu erhalten.
  4. Jede Zeile nach der ersten wird dann durch drei Zeilen ersetzt:
    1. Eine Zeile mit allen Elementen, die durch aufeinanderfolgende Ganzzahlen ersetzt wurden
    2. Die ursprüngliche Linie von Elementen
    3. Eine Zeile mit allen Elementen, die durch _s ersetzt wurden.
  5. Jede ganze Zahl wird dann darüber _gesetzt (falls sie noch nicht vorhanden ist)
  6. Durch Leerzeichen getrennte _s werden mit _s verbunden.

Mit den weit verbreiteten Methoden padStart und padEnd könnte ich wahrscheinlich noch ein paar Bytes einsparen.


Toll! Vielen Dank! Mein winziger Vorschlag: ersetzen 19_84 ``+a.map(s=>r`` 18zu 18_84 ``+a.map(s=>r`` 17. Dies hat keinen Einfluss auf die Codelänge.
mazzy

1
@mazzy Huh, das hatte ich noch gar nicht gemerkt. Vielen Dank!
Neil

8

Ruby, 567

Brachte die La / Ac-Reihe näher an die Haupttabelle (das erneute Lesen der Regeln legt nahe, dass dies zulässig ist; der neu angeordnete Formatierungsabschnitt dwird sofort verwendet, wenn er berechnet wird; und die nächste Zeile wird mathematisch anstelle von Regex berechnet.

a=[?|]*21
j=r=0
118.times{|i|a[r]+="%4s |"%("%-2d"%-~i)
a[r+1]+="  #{'H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg'[i*2,2]} |"
a[r+2]+="_____|"
i>j&&(j+=(r/6+2)**2*2;r+=3)}
a<<' '+?_*84
6.times{|r|a[r+3][13]=' _'[r/5]*59+?|+d='  _'[r%3]
r<3&&a[r][7]=d*5+' '*61+d*29+?|+d
a[r+15][18]=a[r+15][102]='\//'[r%2]
a<<' '+a[r+15][18,85]
a[r+15][18,84]=''}
puts ' _____'+' '*97+?_*5,a

Ruby, 587

Punktzahl schließt 3 unnötige Zeilenumbrüche aus Gründen der Übersichtlichkeit aus

a=[?|]*21
r=0

118.times{|i|
a[r]+="%4s |"%("%-2d"%(i+1))
a[r+1]+="  #{e='H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg'[i*2,2]} |"
a[r+2]+="_____|"
"HeNeArKrXeRn"=~/#{e}/&&r+=3}

6.times{|r|d='  _'[r%3]
r<3&&a[r][7]=d*5+' '*61+d*29+?|+d
a[r+3][13]=' _'[r/5]*59+?|+d
a[r+15][18]=a[r+15][102]='\//'[r%2]
a[r+23]=' '*18+a[r+15][18,85]
a[r+15][18,84]=''}

a[22]=' '*18+?_*84
puts ' _____'+' '*97+?_*5,a

Erläuterung

Die Idee ist, das Folgende zu produzieren, es dann zu modifizieren, indem die richtige Polsterung und Formatierung hinzugefügt und die Lanthaniden und Actiniden nach unten verschoben werden.

|  1  |  2  |
|  H  |  He |
|_____|_____|
|  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10 |
|  Li |  Be |  B  |  C  |  N  |  O  |  F  |  Ne |
|_____|_____|_____|_____|_____|_____|_____|_____|
|  11 |  12 |  13 |  14 |  15 |  16 |  17 |  18 |
|  Na |  Mg |  Al |  Si |  P  |  S  |  Cl |  Ar |
|_____|_____|_____|_____|_____|_____|_____|_____|
|  19 |  20 |  21 |  22 |  23 |  24 |  25 |  26 |  27 |  28 |  29 |  30 |  31 |  32 |  33 |  34 |  35 |  36 |
|  K  |  Ca |  Sc |  Ti |  V  |  Cr |  Mn |  Fe |  Co |  Ni |  Cu |  Zn |  Ga |  Ge |  As |  Se |  Br |  Kr |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  37 |  38 |  39 |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  48 |  49 |  50 |  51 |  52 |  53 |  54 |
|  Rb |  Sr |  Y  |  Zr |  Nb |  Mo |  Tc |  Ru |  Rh |  Pd |  Ag |  Cd |  In |  Sn |  Sb |  Te |  I  |  Xe |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  55 |  56 |  57 |  58 |  59 |  60 |  61 |  62 |  63 |  64 |  65 |  66 |  67 |  68 |  69 |  70 |  71 |  72 |  73 |  74 |  75 |  76 |  77 |  78 |  79 |  80 |  81 |  82 |  83 |  84 |  85 |  86 |
|  Cs |  Ba |  La |  Ce |  Pr |  Nd |  Pm |  Sm |  Eu |  Gd |  Tb |  Dy |  Ho |  Er |  Tm |  Yb |  Lu |  Hf |  Ta |  W  |  Re |  Os |  Ir |  Pt |  Au |  Hg |  Tl |  Pb |  Bi |  Po |  At |  Rn |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  87 |  88 |  89 |  90 |  91 |  92 |  93 |  94 |  95 |  96 |  97 |  98 |  99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 |
|  Fr |  Ra |  Ac |  Th |  Pa |  U  |  Np |  Pu |  Am |  Cm |  Bk |  Cf |  Es |  Fm |  Md |  No |  Lr |  Rf |  Db |  Sg |  Bh |  Hs |  Mt |  Ds |  Rg |  Cn |  Nh |  Fl |  Mc |  Lv |  Ts |  Og |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|

Kommentierter Code

a=[?|]*21                                #setup array with |s for left hand side
r=0                                      #row counter

118.times{|i|                            #For each element add to the correct row
a[r]+="%4s |"%("%-2d"%(i+1))             #the atomic number
a[r+1]+="  #{e='H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg'[i*2,2]} |"
a[r+2]+="_____|"                         #the element symbol and the blank space at the bottom.
"HeNeArKrXeRn"=~/#{e}/&&r+=3}            #If it is element from last column, increment r

6.times{|r|d='  _'[r%3]                  #What symbol (_ or space)do we need to pad?
r<3&&a[r][7]=d*5+' '*61+d*29+?|+d        #Move He to the right
a[r+3][13]=' _'[r/5]*59+?|+d             #Move row 2&3 elements to the right
a[r+15][18]=a[r+15][102]='\//'[r%2]      #Draw breaks for La and Ac series
a[r+23]=' '*18+a[r+15][18,85]            #Copy La and Ac series 
a[r+15][18,84]=''}                       #Delete original La and Ac series from main table

a[22]=' '*18+?_*84                       #Draw top on La and Ac series
puts ' _____'+' '*97+?_*5,a              #Output top of row 1, followed by array containing the rest of the table.

1
IMO sollte es erlaubt sein, die Seltenen Erden inline zu lassen. Was wäre deine Punktzahl in dieser Version?
drehte sich nicht mehr gegen den Uhrzeigersinn am

Ich habe gerade den Code kommentiert. Ich könnte a[r+15][18]=a[r+15][102]='\//'[r%2];a[r+23]=' '*18+a[r+15][18,85];a[r+15][18,84]=''speichernde 83 Bytes löschen , und möglicherweise a[22]=' '*18+?_*84andererseits müsste ich eine Lücke in den Reihen 4 und 5 über den seltenen Erden setzen, also würde es zusätzlichen Code für das geben. Es ist schwierig zu sagen, wie hoch die Punktzahl wäre, ohne dies zu tun, aber es wäre kürzer.
Level River St

8

C, 1415 1401 1395 1367 1345 1277 1159 1052 1043 Bytes

#define P printf(
#define L;P"|\n")
#define M;p(18," ")
#define D L;B
#define K;P"\\\n")M;P
#define Q;P"|%59c",32)
char*l="HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcDbSgBhHsMtDsRgCnNhFlMcLvTsOgPrNdPmSmEuGdTbDyHoErTmYbLuPaUNpPuAmCmBkCfEsFmMdNoLr",U[]="|_____",*u=U+1;a;p(n,s)int*s;{while(n--)P s);}A(n){for(n+=a;a<n;++a)P a>9?"%c%4d ":"%c%3d  ",a^72*a^58?a^90*a^104?'|':47:92,a);}B(n){for(;n--;P"%c ",*l>96?*l++:32))P"|%3c",*l++);}N(){A(18)D(18)L;p(18,U)L;}f(){P" %s%102s\n",u,u);A(a=1);P"|%95c",32);A(1)D(1);P"|%95c",32);B(1)L;P"%s%-67s",U,U);p(5,u);P"____%s|\n",U);A(2)Q;A(6)D(2)Q;B(6)L;p(2,U)Q;p(6,U)L;A(2)Q;A(6)D(2)Q;B(6)L;P"|%s|%s|",u,u);p(11,u);P u+1);p(6,U)L;N(N());A(3);a=72;A(15)D(3);P"/  Hf ");B(14)L;p(3,U);P"\\%s",u);p(14,U)L;A(3);a=104;A(15)D(3);P"\\  Rf ");B(14)L;p(3,U);P"/%s",u);p(14,U)L;P"\n")M;p(84,"_");P"\n")M;a=58;A(14)K"/  Ce ");B(13);P"/\n")M;P"\\%s",u);p(13,U)K"");a=90;A(14);P"/\n")M;P"\\  Th ");B(13)K"/%s",u);p(13,U);P"/");}

Vielen Dank an @Conor O'Brien für die Einsparung von 6 Bytes!

Vielen Dank an @ Zacharý für das Speichern von 22 90 Bytes!

Vielen Dank an @gastropner für das Speichern von 118 225 Bytes!

Vielen Dank an @ceilingcat für das Speichern von 8 bis 9 Bytes!

Probieren Sie es online!

Entrollt (1159-Byte-Version):

#define P printf(
#define L;P"|\n")
#define M;p(18," ")
#define D L;B
#define N(n)A(n,n+18)D(18)L;p(18,U)L;
#define K;P"\\\n")M;P
#define C char
#define Q;P"|%*c",59,32)
C*u,
*l,
*U="|_____",
S[4];

p(n,s)C*s;
{
    P s,
    --n&&p(n,s));
}

b(k)
{
    k=P"|  %s",S);
    P"%*c",6-k,32);
}

e(s)C*s;
{
    *s++=*l++;
    *s=*l>96?*l++:0;
}

A(a,n)
{
    for(;a<n;++a)
        P a>9?"|%4d ":"|%3d  ",a);
}

B(n)
{
    for(;n--;)
        b(e(S));
}

f()
{
    u=U+1;
    l="HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLaTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAcDbSgBhHsMtDsRgCnNhFlMcLvTsOgPrNdPmSmEuGdTbDyHoErTmYbLuPaUNpPuAmCmBkCfEsFmMdNoLr";
    P" %s%*s\n",u,102,u);
    A(1,2);
    P"| %*c",94,32);
    A(2,3)
    D(1);
    P"| %*c",94,32);
    B(1)L;
    P"%s%s%*c",U,U,61,32);
    p(5,u);
    P"____%s|\n",U);
    A(3,5)Q;
    A(5,11)
    D(2)Q;
    B(6)L;
    p(2,U)Q;
    p(6,U)L;
    A(11,13)Q;
    A(13,19)
    D(2)Q;
    B(6)L;
    P"|%s|%s|",u,u);
    p(11,u);
    P u+1);
    p(6,U)L;
    N(19)
    N(37)
    A(55,58);
    P"\\  72 ");
    A(73,87)
    D(3);
    P"/  Hf ");
    B(14)L;
    p(3,U);
    P"\\%s",u);
    p(14,U)L;
    A(87,90);
    P"/ 104 ");
    A(105,119)
    D(3);
    P"\\  Rf ");
    B(14)L;
    p(3,U);
    P"/%s",u);
    p(14,U)L;
    P"\n")M;
    p(84,"_");
    P"\n")M;
    P"\\  58 ");
    A(59,72)
    K"/  Ce ");
    B(13);
    P"/\n")M;
    P"\\%s",u);
    p(13,U)
    K"/  90 ");
    A(91,104);
    P"/\n")M;
    P"\\  Th ");
    B(13)
    K"/%s",u);
    p(13,U);
    P"/");
}

1
@ ConorO'Brien eigentlich 6 Bytes. Vielen Dank!
Steadybox

1
Und ... Sie haben drei printf(Vorkommen vergessen . Hier ist ein Link zu Ihrem Code, wobei diese drei Vorkommen durch das PMakro ersetzt wurden: repl.it/Jeat/1
Zacharý

1
Noch mehr Bytes können mit #define-ing rasiert werden ;L;B: repl.it/Jeat/3
Zacharý

1
Entschuldigung für all das Spammen, aber ich habe es auf 1.277 mit extremem Makromissbrauch repl.it/Jeat/9 gebracht .
Zacharý

1
Wir haben noch ein paar Dinge gefunden, um 1157- Code und Änderungen zu erhalten
gastropner

7

05AB1E , 517 500 494 459 458 Bytes

¾36ו=∊à¢[ΔζÃΓÖo›àƶØ4.æßðùùO∊ŸßeÑΘ²9Êλ*βUθÇΔn4üÁ¬₁÷6öć®λJƒÐtvý¢ƶ³≠qΣĆ}εùeÆv]_|ˆ±q₅yÜƵтY¿в{àéÙ•4B«S2ôvyć'#×s'@×})˜2ôvyDJ'@åi'_©5×ëð5×}‚˜.C.B}})18ôvyøvy'|ý2F'|3úûð7×:}D4£ð4×Êi'|ëð}.ø}})ø„ #„_#:ø»…  _û®5×:…__ 2ú®5×:„_ û®3×:.•$›“₄≠÷/¤¿M5PËð—ΓY¢ö>7*ƒße∞™¶£nˆU‘´¾Ã‹Š\S¬ǝüÑ;:œ η|9HœÇâ`η_т<%£¾ÉöJ₄ª"eÄŸµ2ƶ3^_Ω~Ç∍”pgH¤δ%6ΣŽΔΔ9üηΩ+₃¹ºι"¤Qy¶O£ÄˆU«AJdc=ûö÷O´η,lð¢ʒƵy•v'@y.;}57L72 89Ÿ«Ƶ3ƵHŸ«58 71Ÿ«90Ƶ2Ÿ«Jv'#y.;}"57 |""57 $":¶¡ø'$'|6×2úRû©¦«„/\3×2úR.∞:®'|6ׄ\/3×3ú«:ø»™

Probieren Sie es online!

-10ish danke an Emigna

Lässt einen langen gutturalen Sieg kreischen ... Wird mehr golfen, aber da es immer noch der kürzeste ist ...


Die Grundidee

11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12
12 12 00 00 00 00 00 00 00 00 00 00 11 11 11 11 11 22
22 22 00 00 00 00 00 00 00 00 00 00 22 22 21 21 22 22
21 22 22 22 21 22 22 22 22 22 22 22 22 22 22 22 22 22
22 22 21 22 22 22 22 22 22 22 22 22 22 22 22 22 21 22
22 22 22 22 22 21 22 22 22 22 22 22 22 22 22 22 22 22
22 22 22 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 22 22 22 22 22 22 22 22 22 22 22 22 22 22 00
00 00 00 22 22 21 22 22 22 22 22 22 22 32 32 32 32 00

Ich habe jedes der Quadrate kartiert, wobei die erste Ziffer die Länge der Zahl und die zweite Ziffer die Länge des Elementnamens ist. Verwendet , um dies das Skelett zu erstellen (wenn .Cund .Bdies nicht leicht 300-400 Bytes vorhanden wäre):

 _____                                                                                                 _____ 
|  #  |                                                                                               |  #  |
|  @  |                                                                                               |  @@ |
|_____|_____                                                             _____________________________|_____|
|  #  |  #  |                                                           |  #  |  #  |  #  |  #  |  #  |  ## |
|  @@ |  @@ |                                                           |  @  |  @  |  @  |  @  |  @  |  @@ |
|_____|_____|                                                           |_____|_____|_____|_____|_____|_____|
|  ## |  ## |                                                           |  ## |  ## |  ## |  ## |  ## |  ## |
|  @@ |  @@ |                                                           |  @@ |  @@ |  @  |  @  |  @@ |  @@ |
|_____|_____|___________________________________________________________|_____|_____|_____|_____|_____|_____|
|  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |
|  @  |  @@ |  @@ |  @@ |  @  |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |
|  @@ |  @@ |  @  |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @  |  @@ |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |
|  @@ |  @@ |  @@ |  @@ |  @@ |  @  |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  ## |  ## |  ## | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### | ### |
|  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|


                   ___________________________________________________________________________________       
                  |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |      
                  |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |      
                  |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|      
                  |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## |  ## | ### | ### | ### | ### |      
                  |  @@ |  @@ |  @  |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |  @@ |      
                  |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|      

Dies ist, was die erste Hälfte des Codes erreicht ...

05AB1E , 229 Bytes

0 36ו=∊à¢[ΔζÃΓÖo›àƶØ4.æßðùùO∊ŸßeÑΘ²9Êλ*βUθÇΔn4üÁ¬₁÷6öć®λJƒÐtvý¢ƶ³≠qΣĆ}εùeÆv]_|ˆ±q₅yÜƵтY¿в{àéÙ•4B«S2ôvyć'#×s'@×})˜2ôvyDJ'@åi'_5×ëð5×}‚˜.C.B}})18ôvyøvy'|ý2F"   |"ûð7×.:}D4£ð4×Êi'|ëð}.ø}})ø„ #„_#:ø»…  _û'_5×:"  __ "'_5×:„_ û'_3×:

Probieren Sie es online!

Durch hässliche, einmalige Manipulationen und anderen Quatsch, der nicht existieren sollte, schaffe ich es, das gesamte Skelett zusammenzufügen.


Der nächste Teil besteht im Wesentlichen darin, "die massive Folge von Buchstaben und Zahlen einzufügen, die die Elemente darstellen". Ich habe im Wesentlichen alle Buchstaben nacheinander komprimiert:

.•$›“₄≠÷/¤¿M5PËð—ΓY¢ö>7*ƒße∞™¶£nˆU‘´¾Ã‹Š\S¬ǝüÑ;:œ η|9HœÇâ`η_т<%£¾ÉöJ₄ª"eÄŸµ2ƶ3^_Ω~Ç∍”pgH¤δ%6ΣŽΔΔ9üηΩ+₃¹ºι"¤Qy¶O£ÄˆU«AJdc=ûö÷O´η,lð¢ʒƵy•

Bekommen:

hhelibebcnofnenamgalsipsclarkcasctivcrmnfeconicuzngageassebrkrrbsryzrnbmotcrurhpdagcdinsnsbteixecsbalahftawreosirptauhgtlpbbipoatrnfrraacrfdbsgbhhsmtdsrgcnnhflmclvtsogceprndpmsmeugdtbdyhoertmybluthpaunppuamcmbkcfesfmmdnolr

Sie sehen dann, wie ich alle @ -Symbole durch den entsprechenden Buchstaben ersetze (am Ende kann ich "Titel in Großbuchstaben" für die Großbuchstaben verwenden, da jedes Element durch Leerzeichen getrennt ist).


Als nächstes mache ich die Zahlenfolge und mache dasselbe (danke Emigna):

57L72 89Ÿ«Ƶ3ƵHŸ«58 71Ÿ«90Ƶ2Ÿ«J

Ergebnisse in:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657727374757677787980818283848586878889104105106107108109110111112113114115116117118585960616263646566676869707190919293949596979899100101102103

Was ich dann iteriere und durch jedes # ersetze.


Danach war der letzte Ärger die Schrägstriche ... Mein Gott ...

"57 |""57 $":¶¡ø'$'|6×2úRû©¦«"\/\/\/  ".∞.;®'|6×"   \/\/\/"«.;ø»

Diese 50-Byte-Monstrosität möchte ich zusammen mit vielen anderen kleinen Dingen beheben. Also werde ich weiter Golf spielen, und bis ich die gewünschten Dinge behoben habe, wird dies die informelle Erklärung sein.


1
0 36zu ¾36. 104 118Ÿzu Ƶ3ƵHŸ. 90 103Ÿzu 90Ƶ2Ÿ.
Emigna

Buchstabenfolge kann sein žn•2ƒj#GÂjηCóÛƒüq™ôD ‡yΣ›aÎý1õçñ}ÂćÕ%…7¬vù~GÈž£_DвÌi¸7âòÜë8{~å≠’ˆ—d*^ݬ©Úì#Ï»cDYyÍæηмm¾/5ä):Ω8+“j¼[)ÿ—θ7I₆н¦ʒâÒ₂иofÞIa¥©ÂÛé/VÖt[¼m¦mćó,≠+ŒtC?8@Ú¬¼½k]αεßÁ'‡≠=aÔºø•51вè.
Emigna

1
Die Zahlenfolge könnte sein57L72 89Ÿ«Ƶ3ƵHŸ«58 71Ÿ«90Ƶ2Ÿ«J
Emigna

Diese Buchstabenkomprimierung scheint nicht korrekt zu sein.
Magic Octopus Urn

1
@Emigna hat sowieso eine bessere Lösung gefunden :).
Magic Octopus Urn

6

PowerShell , 1562 Byte

cls
nal w write-host
$u="_"
$q=" "
$a=@('','H','He','Li','Be','B','C','N','O','F','Ne','Na','Mg','Al','Si','P','S','Cl','Ar','K','Ca','Sc','Ti','V','Cr','Mn','Fe','Co','Ni','Cu','Zn','Ga','Ge','As','Se','Br','Kr','Rb','Sr','Y','Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd','In','Sn','Sb','Te','I','Xe','Cs','Ba','La','Ce','Pr','Nd','Pm','Sm','Eu','Gd','Tb','Dy','Ho','Er','Tm','Yb','Lu','Hf','Ta','W','Re','Os','Ir','Pt','Au','Hg','Tl','Pb','Bi','Po','At','Rn','Fr','Ra','Ac','Th','Pa','U','Np','Pu','Am','Cm','Bk','Cf','Es','Fm','Md','No','Lr','Rf','Db','Sg','Bh','Hs','Mt','Ds','Rg','Cn','Nh','Fl','Mc','Lv','Ts','Og')
function b($s,$x,$y){[console]::setcursorposition($x,$y);w $s -n}
function v($n,$m,$i,$p){$x=$n;$i..$p|%{$y=$m;b $_ $x $y;$y++;if($_-gt99){$x++};b $a[$_] $x $y;if($_-gt99){$x--};$x=$x+6}}
w (($u*6)*18)-n;w""
0..8|%{if($_-eq7){w"";w (($u*6)*18)-n;w""}w ("|     "*18)-n;w "|";w ("|     "*18)-n;w "|";w ("|_____"*18)-n;w "|"}
$y=0;0..2|%{7..101|%{b $q $_ $y};$y++};$x=12;$t=$q;0..84|%{if($_-eq61){$t="_"}b $t $x 3;$x++};4..9|%{$y=$_;$t=$q;if($_-eq9){$t=$u};13..71|%{b $t $_ $y}}
$y=23;0..6|%{$x=0;0..18|%{b $q $x $y;$x++};$x=103;0..5|%{b $q $x $y;$x++};$y++}
$x=18;$y=16;0..6|%{b "\" $x $y;$y++;b "/" $x $y;$y++}
$x=102;$y=24;0..2|%{ b "\" $x $y;$y++;b "/" $x $y;$y++}
0,6,102|%{b $q $_ 0}
22,23|%{b $q 18 $_}
b $q 102 23
v 3 10 19 36;v 3 13 37 54;v 3 16 55 57;v 21 16 72 86;v 3 19 87 89;v 20 19 104 118;v 21 24 58 71;v 21 27 90 99;v 80 27 100 103;v 3 1 1 1;v 105 1 2 2;v 3 4 3 4;v 75 4 5 9;v 105 4 10 10;v 3 7 11 12;v 75 7 13 18
b "" 0 30
pause

Bildbeschreibung hier eingeben

Dieser Ansatz ist nicht optimal. Ich kann tio nicht verwenden, da dies Vorteile bringt [console]::setcursorposition.


5

SOGL V0.11 , 311 Bytes (nicht konkurrierend)

f¤o3,hģ_lμgΣ│Τ┐xC‚¦⁽?%□f⁵↕υ/gκ÷⌠‚ξ#.ν⁵‰↕¦δ┌_jυ1ιīΒ=λ←ļ,ξ╚Ƨu≡ā⁄b⅔►<≡7⅛±√‽ε¶&⁶7zV¾UΥY○ΝΚq╬#∫⅜āΡ⁴7‼%Æ«∑+‼Ψ_№QΕ¦→3γ:Ηρ':υy7▒Ξυσ╤ņcΗOī{═─⁷׀Uγlλ№γjΒ%G≤§┐⌠≈δ{oR{ΘKUƨA▒V⁶ ³‘2n '`Δ"²zōdΕ«⅝←╝⅔πφ“'³─◄"³υ≥τk┐?№L‚↑γ°“'³─6«{K;K;A{:I}a}X¹¹Hā;{⁾J6*;J3*;Jl1=@*+l3κ@*ΚΚ"<Ψ:$ō∫ΣO±>⁄‘7nž}"‛‽‛№l№’2n{_"□׀⁵‘čž}"O⁶‛±0±‛¤3¤M¤’2n{_"Ρ8‘ž

Das hat eine Weile gedauert. Um dies so kompakt zu gestalten, habe ich mit den Kosten einer nicht konkurrierenden Antwort viele Dinge in SOGL implementiert (von denen die meisten bereits dokumentiert waren). Vor allem
- "ž", das ein Array innerhalb eines anderen Arrays an bestimmten Koordinaten platziert, und
- "►" und "◄" - Lauflängencodierung und -decodierung. Ich dachte wirklich, ich hätte sie dokumentiert, aber ich glaube, ich hatte es nicht getan.

Probieren Sie es hier aus! (Komprimierung (träge) aktualisiert, um 0.12 zu erfüllen)

Also, zu lange Erklärung voraus:

Erster Teil: Setup

f¤o3,hģ_lμgΣ│Τ┐xC‚¦⁽?%□f⁵↕υ/gκ÷⌠‚ξ#.ν⁵‰↕¦δ┌_jυ1ιīΒ=λ←ļ,ξ╚Ƨu≡ā⁄b⅔►<≡7⅛±√‽ε¶&⁶7zV¾UΥY○ΝΚq╬#∫⅜āΡ⁴7‼%Æ«∑+‼Ψ_№QΕ¦→3γ:Ηρ':υy7▒Ξυσ╤ņcΗOī{═─⁷׀Uγlλ№γjΒ%G≤§┐⌠≈δ{oR{ΘKUƨA▒V⁶ ³‘2n

...‘    push "h helibeb c n o f nenamgalsip s clark casctiv crmnfeconicuzngageassebrkrrbsry zrnbmotcrurhpdagcdinsnsbtei xecsbalaceprndpmsmeugdtbdyhoertmybluhftaw reosirptauhgtlpbbipoatrnfrraacthpau nppuamcmbkcfesfmmdnolrrfdbsgbhhsmtdsrgcnnhflmclvtsog"
    2n  split into an array with items of length 2
These are the element names, conveniently already shaped how they should be.


'`Δ
'`   push 118
  Δ  range - all numbers from 1 to 118
These are atomic numbers


"²zōdΕ«⅝←╝⅔πφ“'³─◄
"...“      push 794198124771504466790502538
     '³    push 19
       ─   base [19] decode - resulting to array [1, 2, 2, 8, 3, 8, 4, 18, 5, 18, 6, 3, 9, 14, 6, 15, 7, 3, 10, 14, 7, 15]
        ◄  run-length decode
Final result: [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]
These are the periods, with 9 and 10 for lanthanides and actinides respectively.


"³υ≥τk┐?№L‚↑γ°“'³─6«{K;K;A{:I}a}X¹

"...“                     push 270687554118568732622432847987
     '³─                  base 19 decode, resulting in [1, 0, 18, 0, 1, 1, 13, 5, 1, 1, 13, 5, 1, 17, 1, 17, 1, 16, 4, 14, 1, 16, 4, 14]
        6«{          }    repeat 12 times
           K;K;             get the 1st 2 items of the array below the array (e. g:      ..., 13, 5, [1, 1, 13, 5, 1, 17, 1, 17, 1, 16, 4, 14, 1, 16, 4, 14])
               A            save the array on variable A (so it doesn't get in the way)  ..., 13, 5
                {  }        repeat POP times                                             ..., 13
                 :            duplicate the number                                       ..., 13, 13
                  I           increase it                                                ..., 13, 14
                              and so on (e.g. 5 times, resulting in 6 numbers)           ..., 13, 14, 15, 16, 17, 18, [1, 1, 13, 5, 1, 17, 1, 17, 1, 16, 4, 14, 1, 16, 4, 14]
                    a       load back the array
                            repeating that all 12 times
                      X   remove the array off of the stack
                       ¹  wrap all of those numbers in an array
Final result: [1, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
These are the periods, which could be so nicely compressed, because if the atomic numbers are sorted, these are too. 

Zweiter Teil: Schleife

¹Hā;{
¹      wrap all those 4 arrays into one big array
 H     rotate it left
            [[a, b, c],         [["c", 3, 6]      
         So  [1, 2, 3], becomes  ["b", 2, 5] . Now the sub-array structure is [name, atomic number, group, period]
             [4, 5, 6]]          ["a", 1, 4]]     
         A couple important things about this:
           - it makes each new sub-array contain all the data from all the arrays at a constant index
           - it reverses the indexes - a,b,c were given in, but now, in each sub-array, the first items are c, b, a.
             This is important because the last elements would get drawn first, so everything would appear correctly. See https://gist.github.com/dzaima/221d1792e03d0429e3403cf255c66926 for what would happen if it didn't get reversed.
  ā;   push an empty array below that big array
    {  for each sub-array


⁾J6*;J3*;
⁾          sentence-case the items in the array, ignoring the numbers. Capitalizes the 1st letter of the name
 J         pop get the last item of the array               [["Au", 79, 6], 11]
  6*       multiply it by 6 - the X coordinate              [["Au", 79, 6], 66]
    ;      swap, geting the array above                     [66, ["Au", 79, 6]]
     J     pop get the last item of the array               [66, ["Au", 79], 6]
      3*   multiply it by 6 - the Y coordinate              [66, ["Au", 79], 18]
        ;  swap, geting the array above                     [66, 18, ["Au", 79]]


Jl1=@*+l3κ@*ΚΚ"<Ψ:$ō∫ΣO±>⁄‘7nž}
J                        get the 1st item of the array               [84, 6, ["C "], 6]             [66, 18, ["Au"], 79]            [96, 21, ["Lv"], 116]
 l                       get length                                  [84, 6, ["C "], 6, 1]          [66, 18, ["Au"], 79, 2]         [96, 21, ["Lv"], 116, 3]
  1=                     push if [length] = 1                        [84, 6, ["C "], 6, 1]          [66, 18, ["Au"], 79, 0]         [96, 21, ["Lv"], 116, 0]
    @*                   get that many spaces                        [84, 6, ["C "], 6, " "]        [66, 18, ["Au"], 79, ""]        [96, 21, ["Lv"], 116, ""]
      +                  join                                        [84, 6, ["C "], "6 "]          [66, 18, ["Au"], "79"]          [96, 21, ["Lv"], "116"]
       l                 get length                                  [84, 6, ["C "], "6 ", 2]       [66, 18, ["Au"], "79", 2]       [96, 21, ["Lv"], "116", 3]
        3κ               do 3-[length]                               [84, 6, ["C "], "6 ", 1]       [66, 18, ["Au"], "79", 1]       [96, 21, ["Lv"], "116", 0]
          @*             get that many spaces                        [84, 6, ["C "], "6 ", " "]     [66, 18, ["Au"], "79", " "]     [96, 21, ["Lv"], "116", ""]
            Κ            prepend those                               [84, 6, ["C "], " 6 "]         [66, 18, ["Au"], " 79"]         [96, 21, ["Lv"], "116"]
             Κ           prepend that in the array                   [84, 6, [" 6 ", "C "]]         [66, 18, [" 79", "Au"]]         [96, 21, ["116", "Lv"]]
              "...‘      push " _____ | ŗ ||  ŗ ||_____|", replacing ŗ with the correspoding item form the array  [66, 18, " _____ |  79 ||  Au ||_____|"]
                   7n    split that into an array of items of length 7                                            [66, 18, " _____ ", "|  79 |", "|  Au |", "|_____|"]
                     ž   set that array at the positions [66, 18] in the array below
                      }  end the for-each loop

Die Ausgabe sieht nun so aus .

Dritter Teil: Add-Ons

"‛‽‛№l№’2n{_"□׀⁵‘čž}
"...’           }  push code page indexes of the chars          [24, 19, 24, 28, 108, 28]
     2n            split into an array of items of length 2     [[24, 19], [24, 28], [108, 28]]
       {           for each sub-array
        _            push all the arrays contents on the stack  [24, 19]
         "...‘       push "\/\/\/"                              [24, 19, "\/\/\/"]
              č      split into a char-array                    [24, 19, ["\", "/", "\", "/", "\", "/"]]
               ž     replace in the mother array at coordinates [e.g. 24, 19] with those chars


"O⁶‛±0±‛¤3¤M¤’2n{_"Ρ8‘ž
"...’           push code page indexes of the chars          [79, 6, 24, 12, 48, 12, 24, 27, 51, 27, 77, 27]
     2n         split into an array of items of length 2     [[79, 6], [24, 12], [48, 12], [24, 27], [51, 27], [77, 27]]
       {        for each sub-array (implicitly closed)
        _         push all the arrays contents on the stack  [79, 6]
         "Ρ8‘     push "_____________________________"       [79, 6, "_____________________________"]
             ž    replace in the mother array at coordinates [e.g. 79, 6] with that string

1
Oh Herr, warum war das nicht konkurrierend? Dies ist die Antwort, die ich 3 Tage lang verschwendet habe.
Magic Octopus Urn

@carusocomputing er implementiert neue Builtins dafür, glaube ich
Stephen

@caruscomputing Ja, der erste Absatz besagt, dass ich neue Buildins implementiert habe
dzaima

Ahhh ... ich habe "falsch verstanden (die meisten davon waren bereits dokumentiert)."
Magic Octopus Urn

4

Bash, 728 Bytes

Getestet unter Ubuntu , erfordert Base64- und XZ- Programme

echo "XQAAgAD//////////wAQF/CEG6nfcFqpw6CdrU+LkV2iM1yxHU1IDYDEgH/atWuFbJGeeBZu5o8S+/6JEYEvLgTKL3JLS1cREFe2iyLK+lMZU9vuTOkuUG6NIz7n9f+iz8j4iMrKqTRVBrSzmeiXXQJA2EEOcgg/Y7Cb6ZjVoTXmo4dAV4bjgMUS0paPWZHNKKZ101VPerG6mof4Rv8UrX/CNmkvxSGG0GKHhaWpHsM6WnTzEU2L8BbDQjYsHlSUzsLj0JdMO8SFR1mlbNtyxZej1s7c4eGy2jBUCq+dCMxFt5W0AOoEHIGKy3zsmqcrJqTnKXVHOUKDiDTel3GaRm3+5fBEc1lXeN1nPli3Id6D1hzIN92eYP4JSrgyrp4t142mJ3U22iTdzO4mctwmjbmdAmFqp8hwIHM4M1n0F6DgfF0bNkROTMRWJC/CQBAkJHARwwol3z2lFsjaReJnTr0rvDvkBfuIPgzjNhFPR2xT55MaN1DKZbPOSsd1r+zZre+XSZD9ViDuGq5xlpmOyiIPRcbNJWpwo7s5mjGkDGtu6+FHygaV5bmTnnGTV0uKtxpSn1MdttXh9CRWTMXBVaIT6RllKQhzgoSUMFbrVQBqKJ/7t7fNouBxhORQRb4DmZJbZ5A1cFhvQflxdHxNkdzZDs7U4DE31j96IhXbO5MirWl2ENWMO1s//QpX8w=="|base64 -d|xz -d

Skript Ergebnis

Erläuterung

LZMA (Lempel-Ziv-Markov-Ketten-Algorithmus) erzeugte ca. 0,5K Archiv mit Periodensystem.

Es enthält nicht druckbare Symbole und kann nicht direkt in der Konsole verwendet werden. Um es zu benutzen, habe ich es mit Base64 codiert

echo "base64_string" | base64 -d | xz -d

Die Stream-Umleitung wird zum Dekodieren und Dekomprimieren von Archiven verwendet.

Tricks

Um etwa 30 Bytes zu sparen, habe ich Zeilenumbruch und einige Leerzeichen gelöscht


Sie können ein paar Bytes mit einem Here-Dokument speichern ( base64 -D<<Q|xz -dgefolgt vom Base64-Code in einer eigenen Zeile und einem nachgestellten Q).
Charphacy

@Charphacy Was meinst du? Ich habe versucht, Q durch base64 string und durch "echo base64_string" zu ersetzen, aber es funktioniert nicht. Können Sie ein Beispiel in den Pastebin hochladen?
Евгений Новиков

was für ein fauler Ansatz. Ich liebe es.
Phil294

4

Excel VBA +, 674 296 293 Bytes (definitiv betrügen)

Zu lustig von einer neuartigen Lösung, um sie nicht zu teilen.

ERFORDERT:

  • Windows 10
  • Microsoft Excel 2016 +
  • Microsoft Edge

Bricht diese Standardlücke

SubRoutine, die keine Eingabe annimmt und das Periodensystem an das activesheetObjekt ausgibt ; Hartcodiert für 118 Elemente

Dieses Periodensystem enthält

  • Ordnungszahl
  • Elementsymbol
  • Elementname
  • Atommasse

Code

Sub p
With Sheet1.QueryTables.Add("URL;http://ptable.com",[A1])
.FieldNames=0
.PreserveFormatting=0
.AdjustColumnWidth=0
.Refresh
End With
[73:78,67:71,58:64,52:56,47:50,43:45,40:41,38:38,3:36].Delete
[E:AE,AS:AU].Delete
[C2:D2,E9]=""'<- Second `"` included only for syntax highlighting
[D7:D11,D9:Q9].Interior.Color=255
Cells.WrapText=1
End Sub

Ausgabe

PTable


Alte Version, 674 Bytes

HINWEIS: Verwendet Verweise auf

  • Microsoft HTML-Objektbibliothek
  • Microsoft Internet Controls

ERFORDERT:

  • Windows 10
  • Microsoft Excel 2016 +
  • Microsoft Edge
Sub p
Set x=New InternetExplorer
x.navigate"ptable.com"
a=10:b=11:c=12:d=13:e=14:f=15:g=16:h=17:i=18
For j=0To 118
Cells(IIf(j<3,1,IIf(j<11,2,IIf(j<19,3,IIf(j<37,4,IIf(j<55,5,IIf(j<72,6,IIf(j<89,7,IIf(j<104,a,b)))))))),IIf(j,Choose(j,2,i,1,2,d,e,f,g,h,i,1,2,d,e,f,g,h,i,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,1,2,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,1,2,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i),1)).Value=Replace(x.document.getElementsByTagName("big")(j).outerText," ",vbCrLf)
Next
[C6:C11,C9:R9].Interior.Color=255
[A1,A2:B7,C4:R5,M2:R3,R1,D6:R7,D10:R11].Borders.LineStyle=1
End Sub

Ausgabe

Ausgabe


3
Tut mir leid, aber wenn es eine Standardlücke bricht, ist es leider nicht gültig.
Erik der Outgolfer

2
@EriktheOutgolfer, daher das "Definitiv Betrügen" an der Spitze - dies ist eher eine unterhaltsame, neuartige Lösung des Problems als eine ganz ernste Antwort, meine andere Lösung ist jedoch eine ganz ernste Antwort
Taylor Scott

1
Ich weiß nicht, wie Sie den Inhalt geholt und trotzdem gegen Kaugummi verloren haben.
Magic Octopus Urn

@carusocomputing, willkommen in der wundervollen Welt von VBA
Taylor Scott

3

Bubblegum , 600 Bytes

00000000: c4d5 4572 e430 0040 d17d 4ea1 1bb4 d9ee  ..Er.0.@.}N.....
00000010: 5d98 9999 9b86 990f 3ff6 cb2e 1546 2f5e  ].......?....F/^
00000020: a94c 8abe d595 70d4 1ce1 b90f b30c fd0b  .L....p.........
00000030: 210e a1f6 190f ef4f 6a9b d9a6 5f64 b6e9  !......Oj..._d..
00000040: 4e33 9b25 5ef8 f854 d71d ff68 6da9 b933  N3.%^..T...hm..3
00000050: 3ee6 afcf 59b0 64c5 36e3 48c9 303f 08b5  >...Y.d.6.H.0?..
00000060: a39d c7ce 36ca 312e 7289 935c bc5c f251  ....6.1.r..\.\.Q
00000070: b379 c32d da93 b195 268f 5d5b 9c32 63ce  .y.-....&.][.2c.
00000080: 8225 2b25 c3e2 49a8 5de8 3d76 b691 778d  .%+%..I.].=v..w.
00000090: 6bbe cb72 30e6 d83b 57bf 5c2a c907 1e77  k..r0..;W.\*...w
000000a0: 2fd9 f6eb 8b18 3361 ca8c 390b 96ac e8d9  /.....3a..9.....
000000b0: 3462 cc84 2933 e62c 940c 73c1 7af5 5c3b  4b..)3.,..s.z.\;
000000c0: 6b5c 5763 3338 ff45 e70f 7657 c799 8ff6  k\Wc38.E..vW....
000000d0: d8c0 f87b e3ae ab53 27ec e8f6 d5db 8c47  ...{...S'......G
000000e0: bd61 ee72 c967 d7af 5b99 b4a2 3259 c498  .a.r.g..[...2Y..
000000f0: 0953 66cc 59b0 6445 cfe6 1163 264c 9929  .Sf.Y.dE...c&L.)
00000100: 1956 4fad da7a 7782 32c6 8bce 2fe8 b6ae  .VO..zw.2.../...
00000110: f0ea 77f6 edba 73c5 7a7a 1acf e8b9 76a1  ..w...s.zz....v.
00000120: 67d7 3bce 7be7 76e7 354a e6ca e405 cbb0  g.;.{.v.5J......
00000130: 1f42 a940 9932 63ce 8225 2baa 5745 8c99  .B.@.2c..%+.WE..
00000140: 3065 c69c 8592 61cc fe19 b5a3 e64f 422b  0e....a......OB+
00000150: 84e9 ae0e ce6c 05f5 3459 faaa cc17 25bf  .....l..4Y....%.
00000160: 29a9 edb4 9eeb ef9c d770 7460 fcd1 3dee  )........pt`..=.
00000170: 5cfd 7065 c9fd e72d 5929 5355 6cd7 6b8b  \.pe...-Y)SUl.k.
00000180: a3ba 406d ce82 252b b61b e388 3113 a6cc  ..@m..%+....1...
00000190: 98b3 60c9 4ac9 30a9 ccea 8955 9f35 df6d  ..`.J.0....U.5.m
000001a0: 55c9 714d d654 1aed 2ba6 e4c2 3757 8d57  U.qM.T..+...7W.W
000001b0: 5d1d b30f 17dd 33a9 e782 3d3c ff43 6177  ].....3...=<.Caw
000001c0: 2ef5 ae2c d97a c692 43d7 fdcf 0f4f eb15  ...,.z..C....O..
000001d0: f3d4 1173 9f2f b7b1 8b88 3113 a6cc 98b3  ...s./....1.....
000001e0: 60c9 8a9e 2d23 c661 ff8a 795a 75fc 8e4d  `...-#.a..yZu..M
000001f0: eb23 2e9e 1bbf f7e1 3861 ab4f 39bf 7eea  .#......8a.O9.~.
00000200: c3fd f629 3fba fac5 7977 eeb8 3aff 3db4  ...)?...yw..:.=.
00000210: ae98 e739 36fc 35eb 695b 6f3b 66c2 9419  ...96.5.i[o;f...
00000220: 7316 2c59 d14f 208a 1833 617a f57a ea55  s.,Y.O ..3az.z.U
00000230: f7b5 b2ed 3782 7a9f 9c51 6c44 9331 8ebe  ....7.z..QlD.1..
00000240: 35ee 2af6 d526 777e 41d5 4525 e7ff af08  5.*..&w~A.E%....
00000250: 7bfc d020 dcf4 b900                      {.. ....

Probieren Sie es online!

Sie können diesen Hexdump mit umkehren xxd -r.

Dies ist das Ergebnis des 747-fachen Zopflierens des Texts im DEFLATE-Format.


22
Herzliche Glückwünsche. Sie wurden gerade in Bubblegum überfordert.
John Dvorak

Und aufgrund der ungeschriebenen Regeln von PPCG wird es nicht einfach sein, ein Gegengolf zu spielen.
Matthew Roh

@JanDvorak Das heißt, er hatte eine Lösung parat und ich habe ihn überrumpelt, und dann hat er einige Milliarden Iterationen verwendet, deshalb hat es so lange gedauert.
Erik der Outgolfer

3

PHP, 758 Bytes

Nachdem ich nur sehr wenig Gelegenheit hatte, meinen Array-Ansatz zu verbessern, entscheide ich mich, nur mit Saiten zu arbeiten

Online Version

$p=($d=str_pad)("",3410,$d("",109)."\n");foreach(str_split("H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg",2)as$k=>$v){!in_array($k,$b=[2,10,18,36,54,86])?:$c++;foreach([" _____ ","| ".$d($k+1,3," ",$k<9?2:0)." |","|  $v |",$o="|_____|"]as$m=>$n)$p=substr_replace($p,$m<1&substr($p,-110+$q=(($i=($k>70&$k<86|$k>102?$k-14:$k)-$b[$c-1])+($k!=1?$c<3&$i>1?10:0:16))*6+110*$m+330*($k>56&$k<71|$k>88&$k<103?$c+3:$c),1)=="|"?$o:$n,$q,7);}$p[342]=" ";for($w=5;$w<9;$w++)for($u=0;$u<3;){$p[$l=($w>6?$w+1:$w)*330+128+$u*110]=$j=($w+$u++)%2?"\\":"/";if($w>6)$p[$l+84]=$j;}echo$p;

Erweitert

$p=($d=str_pad)("",3410,$d("",109)."\n");
foreach(str_split("H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg"
,2)as$k=>$v){
!in_array($k,$b=[2,10,18,36,54,86])?:$c++;
foreach([" _____ ","| ".$d($k+1,3," ",$k<9?2:0)." |","|  $v |",$o="|_____|"]as$m=>$n)
$p=substr_replace($p,
$m<1&substr($p,-110+$q=(($i=($k>70&$k<86|$k>102?$k-14:$k)-$b[$c-1])+($k!=1?$c<3&$i>1?10:0:16))*6+110*$m+330*($k>56&$k<71|$k>88&$k<103?$c+3:$c),1)=="|"?$o:$n
,$q,7);
}
$p[342]=" ";
for($w=5;$w<9;$w++)for($u=0;$u<3;){
$p[$l=($w>6?$w+1:$w)*330+128+$u*110]=$j=($w+$u++)%2?"\\":"/";
if($w>6)$p[$l+84]=$j;}
echo$p;

PHP, 892 Bytes

Erste funktionierende Lösung, die unter der Byteanzahl der Komprimierungsversion liegt, ist eine Lösung mit Arrays

Online Version

$p=array_fill(0,9,($z=($d=str_pad)("",109)."\n").$z.$z);foreach(str_split("H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg",2)as$k=>$v){if(array_search($k,$b=[0,2,10,18,36,54,86]))$c++;$g=$k>56&$k<71|$k>88&$k<103?$c+2:+$c;$x=$k>70&$k<86|$k>102?$k-14:$k;foreach(["| ".$d($k+1,3," ",$k<9?2:0)." |","|  $v |","|_____|"]as$m=>$n)$p[$g]=($r=substr_replace)($p[$g],$n,(($i=$x-$b[$c])+($c<3&$i>1?10:(!$c&$i>0?16:0)))*6+110*$m,7);}for($w=5;$w<9;$w++)for($u=0;$u<3;$u++){$p[$w][18+$u*110]=($w+$u)%2?"\\":"/";if($w>6){$p[$w][102+$u*110]=($w+$u)%2?"\\":"/";}}echo$d(" _____",103)."_____\n";$p[0]=$r($p[0],_____,227,5);$p[0]=$r($p[0],$d("",29,"_____ "),293,29);$p[2]=$r($p[2],$d("",59,"_____ "),233,59);echo join($p);

PHP, 783 Bytes

Probieren Sie es online!

Nur mit Komprimierung

<?=bzdecompress(base64_decode("QlpoNDFBWSZTWYVVkt4AAXB/gCATACBAAP/gP+/f/r/v3yRAAlyZOzuIImgm0BNCJp6T0yQyaAeo000aNqYQrVMU895VSANAAAAAAGmnpAhqoB+1U9QaDQGgAA0ADQAESiieo/SgAAAAAAAANOlBWqLi6XHyC67CCYFu36ImFcCYYSqFERuisi0SA3RCkEKQBkUSsQARADINCeNmOimrFjyW6NWiy7Vp78ujxo434qwygFgmA4mABAxjGA1f9k1pmrrQfSjNsDbvcgetiknNCks756IrcRERRYABMoAAqAEzczMzKCqgAACqgTMzMoaftix6GTLlyYsd92rSy+qyuyu38Ja5t2r3njIeaoULsW+FtUVTKXFADFjUAp1EHjMhLOQkUqZJhPNPGSkUz0IbVHm+kYpfJF1111ttttpERXMYxjQ+QENZxYzMzM5zmVUdJjEkkkzCAqoAioAAAAAEC4AAVRiKVVKqrLEUtqAAGWIpgAVVGIpYVqqtzEUtqkAVliI9MFVFcOHDfffZStrWta1rWsKJfEUyYZUIUpUEVOelAgBgA2nYcAOIHEABglv/sNt+u/gI3pwL6w4LQTEk79PxgktzXtEWfjlwmU9zEyStSha5DECpMVMdyJe5cHqWeGEIzOY2PKEx5RlU9sjzoJFDVLzGN1AYAEQ4CI5xMB8VBKRZEaxKQAJBaRJFaRSRlaDSEgkgJIAOADFArBJJJEHCRUaMP8XckU4UJCFVZLeA"));

PHP, 948 Bytes

<?=gzinflate(base64_decode("vZbbattAFEXfA/mH+QNrNPdHSb4S35CVtgkGk6ZpWtqmxW0KBX98pTVuKfgCRSh62Mjj2XM4a/aMLTbNI7p+qHJ5sRNCCrHruFi9flor5cYvUm78QDm63LUnujn37KvQnaK6btdj7TWoRR3q0YDKZA9z+rH5mD+0LZejBTpHF+gwjhzAbFXu33VOaUympNm0bXdSoRo1qEUd6vcw53fNx9lj23LZ50ZXbM2SkVXEy3i2PYB5Nl3nn/+AGTiGCQrYFLApcFLgpMBJgZMCJ/UoXoVX4VV4FV6FV+FVdg/zKrYM0tV9oxVAXsXxLaifyBjpLb6SNOYUz43e8u2IFUbMyb6zGu85K1ydgNmhxmMOHAUcBRwNHA0cDRwNHA0cDRwNWI1X49V4DV6D1+A1eI3ewyzf0jgt3wDwlvc54zPQVUAuQVd+IHvvgEaeC94nIF1FxVsBc8Kabw6P+YvANMAxwDFOrOsbDwgOCA6AjjmOOQ6ADoAOgB6AHoAer8fr8Xq8/k8yC1KUk6vpnejVPxbvQcHIa1CUYFkwcwLq5Q9ggncM0orjvARjHg87G5Exs3w6DnPdMUwPHA8cH+ruZNJAkIlBLepQjzYAZfODUqtEU1SheLkzJXem5M6Uf+/MIXBK0GX3zd6VwOzHxAIqJ41jYM6A0+e9jMkkjXPmDEE6I8nTn0Bm5uLxOMxelzAvLw5v900HjzhWqAZp2ENDwC0BtwTcEnBLwC0BtwTccjgs+2/xWrwOr5NifaxQHf+CsC/jjcI9sfzC7qEDIj9ivGJX+7/YT8I+wFUx84Zvp8+id7SjDnbpVEeBlgO4ArgCuAK4ArgCuAK4ArgCRyHhKCQchYSjkKgTHdWNx4uW+F/H/0rfGAFaBpYCzT/xzuEYEOoh4zPAzoE53Z7Yow7Q9X4D"));

3

GW-Basic, 598 Bytes (Token-Datei)

Leider ist der Textmodus von GW-Basic auf 80 Spalten beschränkt. Ich habe versucht, den Tisch zu zerquetschen, um ihn fit zu machen, aber das sah nicht allzu erfreulich aus, sodass ich stattdessen einen Grafikmodus verwenden musste.

Unten finden Sie die Textquelle mit Zeilen, die zur besseren Lesbarkeit in 80 Spalten umbrochen sind. Darauf achten , dass für das Programm zu arbeiten , um es in Codepage 437. Sollten Sie es gerettet werden müssen ausprobieren, werden Sie feststellen , es flackert viel , während es zeichnen. Es tut uns leid.

0 S$="+#zB¢0(Y%5k%2GkCUq*Y$ù╝%65SÅ.5H8ú¿ÅÅxIö}¥6Ç{NMLòΩ/ΘÉ}òY'=zI⌂úÅ8V├)û;tùU2δY
#EJ2$++£╪&Θ}óÉ{,ÇN7àmYƒ+7z)ÆH55<IPmTZ¥KÆûwyHS7┐₧óOk5╕æ┴âTtöPo2KWµÅ[╗%ú##mVWíkàƒ,
£q┘6▌òMso⌂/&#
1 SCREEN 9:DIM A%(169):L%=1:FOR R%=4 TO 314 STEP 35:FOR C%=4 TO 604 STEP 35:GOSU
B 3:IF K%GOTO 5ELSE GOSUB 3:C%=K%*35+C%:IF I%=118 THEN R%=R%+12
2 NEXT:NEXT:FOR R%=1 TO 3:LINE(109-(R%=3)*490,(R%=1)*82+330)-STEP(0,-68),0:FOR C
%=1 TO 3:LINE-STEP(6,12):LINE-STEP(-6,11):NEXT:LINE STEP(0,-35)-STEP(5,0),(R%AND
 1)*15:NEXT:LOCATE 23:END
3 IF L%<36 THEN B%=(ASC(S$)-35)*L%+B%:L%=L%*216:S$=MID$(S$,2)
4 K%=B%MOD 36:B%=B%\36:L%=L%\36:RETURN
5 SCREEN,,1:CLS:I%=ASC(MID$("`nn#r",INSTR("9YvG",CHR$(I%))+1))+I%-95:PRINT RIGHT
$(STR$(I%),3):PRINT" ";CHR$(K%+64);:GOSUB 3:PRINT CHR$((K%=0)*64+K%+96):GET(0,0)
-(23,27),A%:SCREEN,,0:PUT(C%+2,R%+5),A%:LINE(C%,R%)-STEP(35,35),,B:GOTO 2

GW-Basic speichert seine Dateien nicht so effizient wie möglich. Um sie auf 660 Byte zu reduzieren, müssen Sie die Token-Datei in einem Editor öffnen und alle Leerzeichen bis auf eines, das Dateiendezeichen und den Müll manuell entfernen Zeichen davor. Dadurch wird die Größe auf 660 Byte reduziert und es wird immer noch geladen und funktioniert einwandfrei.

Bearbeiten: Da es in diesem Fall keine Rolle spielt, dass die Variablen Ganzzahlen sind, da der erwartete Fehler klein ist und Operationen sowieso ähnlich MODund \rund sind, können wir sie auch in Gleitkommavariablen %umwandeln und bei jeder Erwähnung ein Token speichern . Und mir ist aufgefallen, dass die Zahl 35oft genug vorkommt, sodass sich die fünf Bytes, die zum Speichern in einer Variablen erforderlich sind, (nur!) Lohnen. Wenn Sie Punkte gesammelt haben, haben Sie bemerkt, dass wir 43 Bytes gespeichert haben, und das Dateisystem stimmt zu: Wir haben nur noch 617 Bytes.

Edit: Durch leichte Veränderung konnte S$ich sechs weitere Bytes abschneiden: (K=0)*64+wurden AND 127.

Bearbeiten: Okay, also erinnere ich mich, dass ich die Art und Weise ändern wollte, in der ich leere Bereiche speichere. Das hat sieben weitere Bytes, vier S$und drei mehr GOSUB 3:weggenommen, weil es gegen ausgetauscht wurde >9. Und ich habe etwas Effizienz für weitere zwei Bytes geopfert.

Edit: Ich habe die 600-Byte-Barriere durchbrochen! Es ist eine Sache, etwas Kompaktes in einer Golfsprache zu lernen, aber eine andere, es in einer realen Sprache zu tun. Und noch etwas ganz anderes, wenn man es ausgerechnet in GW-Basic schafft. S$bekam fünf Bytes größer, aber ich gerettet neun Bytes durch den Austausch ASC(MID$(...))+I-95mit I+1und das Hinzufügen IF K=1 ... ELSEder Linie 1.

0 S$="|R▐CñföfCσé╕»σε¡┤P╝l½║╙τ/a}µS╦┌]èp┼zµkµ\¢°┴+τ_╞E.₧í3?≥≈ö麵9¬╚O?Ql'zç═┘E}ε
(ùRíHM4╥lΦ≥│6Æäb∞O@╗┘Z¿aú{2╚┤6╪╚M1cf▀ùütóQw»ùmÑíφÖ_0$kLô╩╣└u¥å█3Tìzæd±æñk)τW`╫≈å
¿b0sΓlqùV⌐█Ç8&
1 SCREEN 9:DIM A(180):L=1:W=35:FOR R=4 TO 314 STEP W:FOR C=4 TO 604 STEP W:GOSUB
 3:IF K=1 THEN GOSUB 3:I=K*2+57:C=C-WELSE IF K>9 GOTO 5ELSE C=K*W+C:IF I=118 THE
N R=R+12
2 NEXT:NEXT:FOR R=1 TO 3:LINE(109-(R=3)*490,(R=1)*82+330)-STEP(0,-68),0:FOR C=1
TO 3:LINE-STEP(6,12):LINE-STEP(-6,11):NEXT:LINE STEP(0,-W)-STEP(5,0),(R AND 1)*1
5:NEXT:LOCATE 23:END
3 IF L<36 THEN B=(ASC(S$)-W)*L+B:L=L*216:S$=MID$(S$,2)
4 K=B MOD 36:B=B\36:L=L\36:RETURN
5 SCREEN,,1:CLS:I=I+1:PRINT RIGHT$(STR$(I),3):PRINT" ";CHR$(K+55);:GOSUB 3:PRINT
 CHR$(K+96 AND 127):GET(0,0)-(W,W),A:SCREEN,,0:PUT(C+2,R+5),A:LINE(C,R)-STEP(W,W
),,B:GOTO 2

3

Kotlin , 1688 1667 1664 Bytes

Finden Sie wahrscheinlich einige Verbesserungen, um Bytes zu sparen. Aber es funktioniert, also poste ich es. Danke, mazzy, für 21 Bytes, die dich deklarieren. 3 weitere Bytes entfernen den Template-String und verwenden u direkt.

data class T(val n:String,val a:Int,val c:Int,val r:Int)
val n="H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg"
val l=List(118){i->T(""+n[i*2]+n[i*2+1],i+1,when(i){0->1;1->18;2,3->i-1;in 4..9->i+9;10,11->i-9;in 12..17->i+1;in 18..35->i-17;in 36..53->i-35;in 54..56->i-53;in 57..70->i-53;in 71..85->i-67;in 86..88->i-85;in 89..102->i-85;else->i-99},when(i){0,1->1;in 2..9->2;in 10..17->3;in 18..35->4;in 36..53->5;in 57..70->8;in 54..85->6;in 89..102->9;else->7})}
val u="_____"
fun Int.c()={val t=this
when {t<10->"  $t  "
t<100->"  $t "
else->" $t "}}()
fun g(r:Int,c:Int)=l.find{t->t.r==r&&t.c==c}
fun b(r:Int,c:Int)={val e=g(r,c)
val n=g(r+1,c)
if(e==null)Array(3){if(c<2)if(n==null||it<2)"       "
else " $u "
else if(g(r,c+1)!=null)if(n==null||it<2)if(r>7&&c==3)if((r+it)%2<1)"     \\"
else "     /"
else "     |"
else "$u|"
else if(n==null||it<2)"      "
else if((r<2&&c>12)||(r==3&&c>2&&c<12))"_$u"
else "$u "}
else if(c<2)arrayOf("|${e.a.c()}|","|  ${e.n} |","|$u|")
else if(r==6&&c==3)arrayOf("${e.a.c()}\\","  ${e.n} /","$u\\")
else if(r==7&&c==3)arrayOf("${e.a.c()}/","  ${e.n} \\","$u/")
else if(r==8&&c==17)arrayOf("${e.a.c()}\\","  ${e.n} /","$u\\")
else if(r==9&&c==17)arrayOf("${e.a.c()}/","  ${e.n} \\","$u/")
else arrayOf("${e.a.c()}|","  ${e.n} |","$u|")}()
fun p()={val a=Array(30){""}
var s=1
for(r in 0..8){for(c in 1..18){val o=b(r+1,c)
for(i in 0..2)a[r*3+i+s]+=o[i]}
if(r==6)s+=2}
a[0]=" $u"+" ".repeat(97)+u
a[23]=" ".repeat(19)+"_".repeat(83)
a}()

Probieren Sie es online!


1
groß! Sie können 16 Bytes sparen, wenn: 1. val u="_____"Vor fun Int.c()und 2. Alle 5 Unterstriche auf $ u ersetzt werden. Zum Beispielif((r<2&&c>12)||(r==3&&c>2&&c<12))"_$u"
mazzy

1
@mazzy war 21 Bytes. Sie haben wahrscheinlich zwei Ersatz verpasst. Danke!
JohnWells

3

C (gcc) , 623611 Bytes

#define E(a)s[x/18*3+a/7][x%18*6+a%7]
#define e(a,b,c)E(a)=E(b)=E(c)=
i;x;char*p="H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg",s[999][110];P(x){e(14,28,42)47,e(7,21,35)92;}main(){for(memset(s,32,4e3);*p;s[++i][-1]=10,E(17)=*p++,E(18)=*p++,sprintf(&E(9)," %-2d "+i/100,i),e(7,14,21)e(13,20,27)124,x+=x?i-4&~8?i-57&~32?i-71&~32?1:-67:55:11:17)e(1,2,3)e(4,5,22)e(23,24,25)e(26,(i<5|E(0)&4),1)P(P(P(147)+1)+69)+3;puts(s);}

Probieren Sie es online!

Danke gastropner für 2 Bytes (und mehr der Gedanke) und cailingcat für 7 Bytes


Sie können weitere zwei Bytes speichern, indem Sie das e()Makro erweitern. Verknüpfung.
Gastropner

@ Ceilingcat s[x/18*3+i<5|E(0)&4/7][x%18*6+i<5|E(0)&4%7]scheinen nicht die gleiche Bedeutung haben
l4m2

2

Bash + openssl + bzcat, 787 Bytes

echo 'QlpoOTFBWSZTWU4gJ1IAAWJ/gCARACBAAP/gP+/f/r/v3yRAAlzt0bO4giaaJsgT
Uymg0PKAADRpoM00IVqnqhn7ypRAaBkAABpo0AACMqQHtU9QaPUDJoGjQAAAACJR
RlH6oAAAAA0AAANMSCuPE35BdLsIJgW7goiXLgTDCVQoiN8VkWiQG+IUghSAMiiV
iBIIJQbSowuqP1azrEUckcN2TFkgjzP/NbraQIlwhHiEQoAFArk2cXwzozZiX2Fd
oDTrgQ9SNYtUrT6Y12TdAzMzmiIiBMoAAqAEzeZmZlBVQAABV70RDMzM3olunLqr
w27cODVi7KDMVsJhVbEN5HVmxiudB3tlkdzOjK62bamumQDNHkDYZJRGomJuEzpZ
Rkq6q50aVleQn2z3xsGbI0K++++66664zM70REeHz9AsBWiIiMY1rWAI2Y8qqqqq
z1JAQlAhJJJJJQgsYwFUYilaqqrLEUu1AAGWIpcAVVGIpnmcqq3mIpdrIArLER43
K0Vta1rWVK2ta1rWtawomVEUy4ZkIUpUEVMfJWACgBXdpWALEFiAAgnr2YfmfRnx
Ec7MD/cMXEaMOGC9smHqfF4imuDpVNjBGUY5rRfAkIWsm1IbjdqdKLXLljKdUEfP
dKpdJ0ti+i6yMsj2u51K5QUACIYCI9AqBe9YKKRZEaxKQAJBaRJFaRSRlaDSEgkg
JIAOADHArBJJJEHCRUaMP8XckU4UJBOICdSA'|openssl enc -d -base64|bzcat

Die Zeilenumbrüche sind erforderlich. Gibt das Periodensystem an aus stdout.


1
Sie können openssl enc -d -base64mitbase64 -D
ovs

2

Powershell, Bytes 1077 937 934 906 902 888 878 842 784 688 677 673 667 651 596 Bytes

Port von Neil's Javascript

filter l{"{0,5}"-f("{0,-2} "-f$_)}filter m{"|$_|"}$z=(,(' '*95)*2+(($u='_'*5)+' '*61+'_'*29)+,(' '*59)*5+'_'*59|m)+,'|'*6+'\','/'*6
" $u"+' '*97+$u
-split"H,He
LiBe,BCNOFNe
NaMg,AlSiPSClAr
KCaSc,TiVCrMnFeCoNiCuZnGaGeAsSeBrKr
RbSrY,ZrNbMoTcRuRhPdAgCdInSnSbTeIXe
CsBaLa,CePrNdPmSmEuGdTbDyHoErTmYbLu,HfTaWReOsIrPtAuHgTlPbBiPoAtRn
FrRaAc,ThPaUNpPuAmCmBkCfEsFmMdNoLr,RfDbSgBhHsMtDsRgCnNhFlMcLvTsOg"|%{if(($b=$_-split','|%{(($s=$_-csplit'(.[a-z]?)'-ne'')|%{++$i|l}),($s|l),($s|%{$u})|%{$_-join'|'}})[8]){$a+=$b[3..5]}0..2|%{$b[$_]+$z[$j++]+$b[$_-3]}}|m
''
' '*18+'_'*84
$a|%{' '*18+($s=$z[$j++])+$_+$s}

Hänge rv i,j,aan das Ende des Skripts an können restart.

Ungolfed

# return formated label or number
filter l{"{0,5}"-f("{0,-2} "-f$_)}

filter m{"|$_|"}

# fillers
$z=(,(' '*95)*2+(($u='_'*5)+' '*61+'_'*29)+,(' '*59)*5+'_'*59|m)+,'|'*6+'\','/'*6

# output the periodic table rows
" $u"+' '*97+$u

# transform each label row to array of numbers, labels and separators
# insert a filler from $z[$j++] between first and last groups of 3 lines
# return 3 completed lines (left+filler+right) 
# append middle group (Lanthanides and Actinides) to $a if the group is specified
-split"H,He
LiBe,BCNOFNe
NaMg,AlSiPSClAr
KCaSc,TiVCrMnFeCoNiCuZnGaGeAsSeBrKr
RbSrY,ZrNbMoTcRuRhPdAgCdInSnSbTeIXe
CsBaLa,CePrNdPmSmEuGdTbDyHoErTmYbLu,HfTaWReOsIrPtAuHgTlPbBiPoAtRn
FrRaAc,ThPaUNpPuAmCmBkCfEsFmMdNoLr,RfDbSgBhHsMtDsRgCnNhFlMcLvTsOg"|%{
    if(($b=$_-split','|%{
        (($s=$_-csplit'(.[a-z]?)'-ne'')|%{++$i|l}),
        ($s|l),
        ($s|%{$u})|%{
            $_-join'|'
        }
    })[8]){
        $a+=$b[3..5]
    }
    0..2|%{
        $b[$_]+$z[$j++]+$b[$_-3]
    }
}|m
''
' '*18+'_'*84
$a|%{' '*18+($s=$z[$j++])+$_+$s}

1

Netzhaut , 888 Bytes


 }~~xJ }¶|J1J|~~x>JwHJ|~~x{He@|}|}xJ q____|}w3j4J|x;j6j7j8j9j10 wLi{Be |x{BjCjNjOjFjNe@|}|}|x "w11{12 |x{13{14{15{16{17{18 wNa{Mg |x!l{Si:jSjCl!r@]qq____"w19>0>1>2>3>4>5>6>7>8>9-0-1-2-3-4-5-6 wKjCa{Sc{Ti{VjCr{Mn{Fe{Co{Ni{Cu{Zn{Ga{Ge!s{Se{Br{Kr@"""w37-8-9=0=1=2=3=4=5=6=7=8=9;0;1;2;3;4 wRb{Sr{YjZr{Nb{Mo{Tc{Ru{Rh:d!g{Cd{In{Sn{Sb{Te{IjXe@"""w55;6;7 \J72,3,4,5,6,7,8,9'0'1'2'3'4'5'6 wCs{Ba{La /JHf{Ta{WjRe{Os{Ir:t!u{Hg{Tl:b{Bi:o!t{Rn@]\Q|}w87'8'9 / 104&5&6&7&8&9%0%1%2%3%4%5%6%7%8 wFr{Ra!c \JRf{Db{Sg{Bh{Hs{Mt{Ds{Rg{Cn{Nh{Fl{Mc{Lv{Ts{Og@]/Q|}|¶¶~qqq}____ ¶~\J58;9<0<1<2<3<4<5<6<7<8<9,0,1 \¶~/JCe:r{Nd:m{Sm{Eu{Gd{Tb{Dy{Ho{Er{Tm{Yb{Lu /¶~\Q\¶~/J90#1#2#3#4#5#6#7#8#9&0&1&2&3 /¶~\JTh:a{UjNp:u!m{Cm{Bk{Cf{Es{Fm{Md{No{Lr \¶~/Q/
!
{A
"
]]
#
{9
%
z1
&
z0
'
{8
,
{7
-
{3
:
{P
;
{5
<
{6
=
{4
>
{2
@
 |¶
J
  
Q
}]]]]|}
j
 {
q
}}}}}
w
|¶|  
x
~~~    
z
 | 1
]
|}|}|}
{
 |  
}
_____
~
                  

Probieren Sie es online!


1

C ++, 866 Bytes

#import<bits/stdc++.h>
#define S std::string
#define R .replace
#define F(a,b,c,d)for(a=b;a<c;a+=d)
#define G(b)F(i,b,31,1)
#define a A[i]
int i,j,t;main(){S*A=new S[31];G(0)a="|"+(i%3?S(108,32):S(107,95)+' ');A[0]R(6,95,95,32);A[6]=A[3]R(12,59,59,32);F(j,6,109,6)G(t=1)!t|A[i-1][j-1]^32?t=0,a[j]='|':0;G(22)a=' '+a.substr(0,i<24?j=0:85);F(i,1,31,3)for(t=0;~(t=a.find("|     |",t));j=j^56?j^88?j^117?j^70?j+1:89:57:103:71)A[i+1]R(t+3,2,"H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg",j*2,2),a R(t+2,j>8?3:2,(j>98?"":" ")+std::to_string(j+1));G(25)a[1]=a[85]=A[i-9][18]=i&1?92:47;A[24]=" "+S(84,95);i=0;a[0]=a[101]=a[102]=A[3][71]=A[3][72]=A[6][71]=32;G(0)std::cout<<a<<'\n';}

Ungolfed-Version:

#include <bits/stdc++.h>

using namespace std;

string els = "H HeLiBeB C N O F NeNaMgAlSiP S ClArK CaScTiV CrMnFeCoNiCuZnGaGeAsSeBrKrRbSrY ZrNbMoTcRuRhPdAgCdInSnSbTeI XeCsBaLaCePrNdPmSmEuGdTbDyHoErTmYbLuHfTaW ReOsIrPtAuHgTlPbBiPoAtRnFrRaAcThPaU NpPuAmCmBkCfEsFmMdNoLrRfDbSgBhHsMtDsRgCnNhFlMcLvTsOg";

int main()
{
    vector<string> ans(31, "|" + string(108, 32));
    for (int i = 0; i < 31; i += 3)
        ans[i] = "|" + string(107, 95)+' ';             // horizontal lines
    ans[0].replace(6,95,95,32);
    ans[3].replace(12,59,59,32);                        // clear some lines
    ans[6].replace(12,59,59,32);
    for (int i = 6; i <= 108; i += 6)
        for (int j = 1, t = 0; j < 31; j++)
            if (t|ans[j-1][i-1]!=32) t=1,ans[j][i]='|'; // vertical lines
    for (int i = 22; i < 31; i++)
        ans[i]=' '+ans[i].substr(0,i<24?0:85);          // remove cells between parts
    for (int i = 1, j = 0; i < 31; i += 3) {
        int t=0;
        while(~(t = ans[i].find("|     |",t))) {        // find a cell
            ans[i+1].replace(t+3,2,els,j*2,2);          // fill name
            ans[i].replace(t+2,j>8?3:2,(j>98?"":" ")+to_string(j+1)); // fill atomic number
            j=j^56?j^88?j^117?j^70?j+1:89:57:103:71;    // next cell
        }
    }
    for (int i = 25; i < 31; i++)
        ans[i][1]=ans[i][85]=ans[i-9][18]=i&1?92:47;    // wavy lines
    ans[24]=" "+string(84,95);                          // reset the first line of the second part
    ans[0][0]=ans[0][101]=ans[0][102]=ans[3][71]=ans[3][72]=ans[6][71]=32; // minor edits
    for (auto i : ans) cout << i << endl;
}

Python 3, 730 Bytes

import lzma,base64
print(lzma.decompress(base64.b85decode("T>t=p0RR90|NsC0{{Rpd@Pr$w-*8%~!=Rn5Pm7UVqBC5v9Zg6LfW&}*+O=ziY>}RL7H;N`68rv%5rHo*1j;XROG{S~5LdQ~BFg$x8B^QtOzAFAZjB>8=k@=h&&c?Q%F3xURR*-Pndp~Y0zlY74sr-TW3Zd)nAM>*=A(x|SBB$&#S+q%k6Dq;D5iDORZn`cx|)ahM*kG8f5J9tFU28-&|-&$rKujnI$Ct|5lxHm7Q;d|EFM&p&cfr+mrOgvg-2PXY}<0hm!sCs+~MJ}+AvfKubl|YMYol-0O|xBfr`s~?3$-5CZy*nbw@cugNQWVmvNd#ZT{u(L~~hJc-?0{ShpeGgVr3#H{G6K{s~IBGOnI2*NvtpbvD{0-OTPLa@;13xt#)GYNyC>Aagh~S@aj6;Cx*hHbhQL#8xCP!axutBybVK3MJn?r54EAMdD{py(_#s<OTbPJ`CeF5l=^KQ|FT!H&DuDv(8G#b+7E%t?!pfko{I5?i#LfmYI&qA`eBz%_VAZqq{kpF{BJ@ZtLMk$_AC?xs#r8lUGZMw;EEPQysR|;q)X{OvS-fq7&&EWhn@Af`pVXR_j#&YAB!kx3|rr;BkcHP({82nUY&)kTq~vZ$bHSbbL*b+}RG!)Zj5U)<1e8727+LBCTn55Y>!3TR;5@SMv")).decode())


1

/// , 987 958 Bytes

/J/\/\///í/				Jù/____Jú/
x\\Jà/z1Já/\/!JQ/q
J	/ :Jj/  Jq/ |Jx/$^^Jw/$$$$Jz/ | J:/ù_J;áTJ~áSJ`áRJ-áLJ+áHJ=áBJ?áAJ>áNJ<áPJ.áFJ,áMJ"áCJ'á9J]á8J[á7J}á6J{á5J)á4J(á3J*á2J&á1J^/    J%/@@@@@@J$/  ^^J#/|  J@/ù_|/á/ |  /	ww$^j	
#1 !ww$j* Q#H !ww$j+eQ|@:w$$	:::ù@@
#3 ) !w$^j{ } [ ] ' &0Q#Li=e!w$^j= " > !O . >eQ|@@wxq%
#11&2!w$^j&3&4&5&6&7&8Q#Na,g!w$^j?l~i< ~ "l?rQ|@@::::::::::ù%@
#19*/§/0*1*2*3*4*5*6*7*8*9/§(0(1(2(3(4(5(6Q#K "a~c;i!V "r,n.e"o>i"u!Zn!Ga!Ge?s~e=r!KrQ|%%%
#37(8(9)/*/)/§{0{1{2{3{4Q#Rb~r!Y !Zr>b,o;c`u`h<d?g"d!In~n~b;e!I !XeQ|%%%
#55{6{7 \\j72[3[4[5[6[7[8[9]0]1]2]3]4]5]6Q#Cs=a-a \/jHf;a!W `e!Os!Ir<t?u+g;l<b=i<o?t`nQ|@@:\\%%@@@
#87]8]9 \/ 104à05à06à07à08à09à10à11à12à13à14à15à16à17à18Q#Fr`a?c \\jRf!Db~g=h+s,t!Ds`g"n>h.l,c-v;s!OgQ|@@:\/%%@@@

x:_ííí	ú\j58{9}/*/}/§[0[1 \\ú/jCe<r>d<m~m!Eu!Gd;b!Dy+o!Er;m!Yb-u \/ú\%%@:\\ú/j9/*/'/§à00à01à02à03 \/ú\jTh<a!U >p<u?m"m=k"f!Es.m,d>o-r \\ú/%%@:\/

Probieren Sie es online!

Ich habe es versucht


1

Canvas , 289 Bytes

ø“^,>ø0pk↶┘?6-wF-c⁶DI2Er„‾⁴┬3n0X{┤Y┘┘{┐┌ω+┤6×y3× 3_×+|2*∔┼(v:“ko±╫JH(:)⇵↙↕l╷-N6 ↶±A)!|¾bki#LOiC0÷1c─↔k⁵IYh╬%÷╶1B--ul@%A%⁵KU/iE╷@L0≤}nJD«↑7E;pMJ2↓Zx^9{t9╴Y0[9◂ ?↙ø╬0N4@⇵║MXh#H«;g→zc-X84]Fk`⁸OO^»^L]U4Z¼e\0w┤∙pjp8←|═9±±→╵Mt⁵L@|On !±b⁹2R⁰‟2n├@ 4×)r32╋∙╋}}“57q‼(„‾;┬3n{┤_×╋}“¾├W↓5„‾X┬2n{┤/\3×↷╋

Probieren Sie es hier aus!


-5

Text , 3148 Bytes

 _____                                                                                                 _____
|  1  |                                                                                               |  2  |
|  H  |                                                                                               |  He |
|_____|_____                                                             _____________________________|_____|
|  3  |  4  |                                                           |  5  |  6  |  7  |  8  |  9  |  10 |
|  Li |  Be |                                                           |  B  |  C  |  N  |  O  |  F  |  Ne |
|_____|_____|                                                           |_____|_____|_____|_____|_____|_____|
|  11 |  12 |                                                           |  13 |  14 |  15 |  16 |  17 |  18 |
|  Na |  Mg |                                                           |  Al |  Si |  P  |  S  |  Cl |  Ar |
|_____|_____|___________________________________________________________|_____|_____|_____|_____|_____|_____|
|  19 |  20 |  21 |  22 |  23 |  24 |  25 |  26 |  27 |  28 |  29 |  30 |  31 |  32 |  33 |  34 |  35 |  36 |
|  K  |  Ca |  Sc |  Ti |  V  |  Cr |  Mn |  Fe |  Co |  Ni |  Cu |  Zn |  Ga |  Ge |  As |  Se |  Br |  Kr |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  37 |  38 |  39 |  40 |  41 |  42 |  43 |  44 |  45 |  46 |  47 |  48 |  49 |  50 |  51 |  52 |  53 |  54 |
|  Rb |  Sr |  Y  |  Zr |  Nb |  Mo |  Tc |  Ru |  Rh |  Pd |  Ag |  Cd |  In |  Sn |  Sb |  Te |  I  |  Xe |
|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  55 |  56 |  57 \  72 |  73 |  74 |  75 |  76 |  77 |  78 |  79 |  80 |  81 |  82 |  83 |  84 |  85 |  86 |
|  Cs |  Ba |  La /  Hf |  Ta |  W  |  Re |  Os |  Ir |  Pt |  Au |  Hg |  Tl |  Pb |  Bi |  Po |  At |  Rn |
|_____|_____|_____\_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
|  87 |  88 |  89 / 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 |
|  Fr |  Ra |  Ac \  Rf |  Db |  Sg |  Bh |  Hs |  Mt |  Ds |  Rg |  Cn |  Nh |  Fl |  Mc |  Lv |  Ts |  Og |
|_____|_____|_____/_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|

                  ____________________________________________________________________________________ 
                  \  58 |  59 |  60 |  61 |  62 |  63 |  64 |  65 |  66 |  67 |  68 |  69 |  70 |  71 \
                  /  Ce |  Pr |  Nd |  Pm |  Sm |  Eu |  Gd |  Tb |  Dy |  Ho |  Er |  Tm |  Yb |  Lu /
                  \_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____\
                  /  90 |  91 |  92 |  93 |  94 |  95 |  96 |  97 |  98 |  99 | 100 | 101 | 102 | 103 /
                  \  Th |  Pa |  U  |  Np |  Pu |  Am |  Cm |  Bk |  Cf |  Es |  Fm |  Md |  No |  Lr \
                  /_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____/

Beruhige dich, es ist ein Witz.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.