Möglicherweise haben Sie vom "Hacker-Logo", auch "Hacker-Emblem" genannt, gehört. Es sieht aus wie das:
Dies ist ein Muster aus einer mathematischen Simulation namens Game of Life. Der Gleiter ist das einfachste Lebensmuster, das sich bewegt, und das am schnellsten erkennbare aller Lebensmuster.
Die Herausforderung
Die Herausforderung ist ganz einfach: Zeigen Sie das Hacker-Logo an. Dies ist definiert als:
- Ein 3x3-Gitter mit einem Rand, einem weißen Hintergrund und grauen Gitterlinien.
- Fünf schwarze Punkte im GoL-Muster.
- Nichts anderes.
Die Regeln
- Die schwarzen Punkte müssen 40% - 80% ihrer einzelnen Gitterfelder ausfüllen .
- Sie werden das Emblem mit grafischer Ausgabe aber ohne ASCII- Grafik anzeigen .
- Die Ausgabe muss mindestens 30x30 Pixel betragen .
- Die Ausgabe darf nur die Farben Grau, Schwarz und Weiß enthalten .
- Jedes Gitterfeld im Gitter hat die gleiche Größe. Das Gitter wird ein reguläres 3x3-Quadrat sein .
- Sie dürfen das Logo nicht aus dem Internet oder Ihrem Dateisystem ziehen.
- Ihr Programm zeigt das Logo auf einem leeren Bildschirm / Fenster an. Wenn es beendet wird, muss es dies normal tun.
- Beachten Sie, dass "Punkte" nicht unbedingt "Kreise" bedeuten. Ein "Punkt" ist eine einzelne geometrische Form, die in der Mitte des Gitterkastens mit einer Oberfläche zentriert ist. Während beispielsweise ein Kreis oder ein Quadrat als Punkt qualifiziert wird, gilt dies für zwei Dreiecke oder ein Schachbrett nicht.
Der Gewinner
Da dies Codegolf ist , gewinnt die kürzeste Antwort in jeder Sprache!
Bitte fügen Sie Ihrer Antwort einen Screenshot der Ausgabe Ihres Programms bei.
Antworten:
Mathematica, 62 Bytes
Mathematica, 71 Bytes
quelle
Graphics@Disk[]
als Argument verwenden.Rasterize@Grid[{{,●,},{,,●},{●,●,●}},Frame->All,FrameStyle->Gray]
. Das ● ist ein Zwei-Byte-Unicode-Zeichen. Da es sich nicht unbedingt um einen Kreis handeln muss, kann möglicherweise ein ASCII-Zeichen verwendet werden, um die 40% -80% -Anforderung zu erfüllen.Rasterize
oder ähnliches, um die Anforderung zu erfüllen,graphical output but no ASCII art
da die Symbole im Raster noch als Unicode-Zeichen auswählbar sind.CSS + HTML,
56 + 84 = 140 Bytes52 + 84 = 136 Bytes4 Bytes gespart, indem Vorschläge aus den Kommentaren übernommen wurden.
Hierbei wird das UTF-8-Zeichen verwendet,
•
das 2 Byte lang ist und die Anmut der HTML-Syntax ausnutzt.quelle
•
!line-height:.4;
und ein anderes retten , wenn Sie das Closing weglassen}
GLSL (Fragment Shader),
278235256 BytesSehen Sie es in Aktion: http://glslsandbox.com/e#40717.2
quelle
precision highp float;void main(){vec2 a=gl_FragCoord.xy/20.-.2;ivec2 b=ivec2(a);a-=vec2(b)+.5;gl_FragColor=vec4(vec3(a.x<-.5||a.y<-.5||a.x>.3||a.y>.3?.5:length(a+.1)<.4&&(b.x+b.y-3)*b.y==0?.0:1.)*float(b.x<3&&b.y<3),1.);}
Python 2 ,
169140 BytesTatsächliche Größe, 61 mal 61, gezeichnet auf einer viel größeren Leinwand von 300 mal 400:
Pixelraster anzeigen:
Die Punkte verwenden 177 Pixel im Bereich von 40% bis 80%, unabhängig davon, ob die weiße Füllung 19 x 19 (144,4 bis 288,8) oder die weiße Füllung 21 x 21 mit beiden Rändern (176,4 bis 352,8) berücksichtigt wird.
Hinweis: Das Programm wird beendet und das Canvas-Fenster geschlossen, sobald die Zeichnung abgeschlossen ist, damit das manuelle Schließen des Fensters die Linie anfügt
done()
.turtle
ist ein Python-Paket, das für die grafische Einführungsprogrammierung entwickelt wurde. Ein Stift beginntx,y=0,0
in der Mitte einer Leinwand mit 300 x 400 Pixel (Standardeinstellung),up
hebt den Stift an,goto
bewegt den Stift undshape
stellt die Form des Stifts auf eine benannte Form ein ("square"
eine vordefinierte Form mit einer Standardpixelbreite von 21) ),color
legt die Farbe fest, bei der zwei Parameter Strich (mit der Standardbreite 1) und Füllung festlegen; ein Byte wird unter Verwendung der gespeicherten(r,g,b)
Tupel Option ersetzen"white"
mit[1,1,1]
Verwendung der Liste Multiplikation[1]*3
. Zum Schluss wirddot
ein Punkt mit der angegebenen Breite in Pixel und Farbe gezeichnet. Der Standardwert für die Breite des Punkts ist zu klein, um ihn zu qualifizieren.9
Deshalb habe ich ihn ästhetisch und qualifizierend gestaltet15
. Die Farbe des Punktes könnte sein"black"
aber das entpackte(r,g,b)
Tupel von0,0,0
ist um zwei Bytes kürzer.Der Stift muss sich von einem Punkt am Ende entfernen, da sonst der grau / weiße Stift den Punkt verbirgt.
Das Gitter wird durchquert einen div Verwendung (
/
) und mod (%
) deri
ab8
(i
wird initialisiert ,9
sondern wird zu Beginn der dekrementiertwhile
Schleife) und Arbeits unten zu0
, Versetzen die Ergebnisse2,1,0
zu-1,0,1
verwenden(1-...)
und jeweils bis zu der Rastergröße Skalierung unter Verwendung von ein Faktor von 20 (beachten Sie, dass dies20-i/3*20
tatsächlich ein Byte weniger ist als20*(1-i/3)
, dasselbe gilt für%
). Dies erzeugt die Reihenfolge [unten links, Mitte links, oben links, unten mittig, Mitte mittig, oben mittig, unten rechts, Mitte rechts, oben rechts] und "hasDot
" erfordert eine Bewertung von[1,0,0,1,0,1,1,1,0]
, das ist302
in binären so durch inspizieren der zugegriffen werden kanni
ten Zweierpotenz Komponente302
mit einem bitweisen-und302&2**i
.quelle
turtle
.Applesoft BASIC ,
479476516515483482 Bytes-32 bei Verwendung nicht lesbarer Variablennamen: P
-1, weil Apple sich für magisch entschieden hat und mich ein implizites / nicht existierendes GOTO verwenden ließ
Hier ist mein eigenes (sehr schlagbares) Programm für ein Beispiel einer Ausgabe, die keine Kreise verwendet:
Ausgabe:
quelle
IA-32 Maschinencode,
8180 BytesHexdump:
Diese
fastcall
Funktiondoit
gibt das Bild im PGM-Format im angegebenen Puffer zurück. Verwendungszweck:Ausgabe:
Ich habe eine Auflösung von 256x256 verwendet, weil
es cool ist,damit ich den Index des Pixelsecx
automatisch in Koordinateny
inch
undx
in teilen kanncl
. Das PGM-Dateiformat erfordert außerdem die Nummer 255 im Image-Header.Die inneren Quadrate sind 54 x 54 (41% der Zellfläche).
Quellcode (kann von Visual Studio kompiliert werden):
Das Zellmuster
kann durch eine "optimierte" Bitmap von 7 Bits dargestellt werden.
Die Bits werden durch den Ausdruck indiziert
y * 2 + x
, wobei(x,y)
der Ort der Zelle ist. Dieser Ausdruck gibt 2 Zellpaaren den gleichen Index. Es ist ein glücklicher Zufall, dass die Bitwerte dort gleich sind.quelle
42*42/85/85
nur 24,4%.HTML & CSS, 155 Byte
Es stellte sich heraus, dass HTML Syntaxfehler wirklich verzeiht.
1 Byte gespeichert dank @Octopus · 1 Byte gespeichert dank @Downgoat · 2 Byte gespeichert dank @StephenS
2 Bytes gespeichert dank @Ryan · 3 Bytes gespeichert dank @styfle · 4 Bytes gespeichert dank @Ferrybig
Dank @SteveBennett 13 Bytes gespart
quelle
R (
130119113 Bytes)quelle
axes=F
, um zu ersetzenxaxt="n",yaxt="n"
. Wenn Sie alle Koordinatenwerte verdoppeln, sparen Sie 4 Netzbytes (können den1:3,2:3
Trick jedoch nicht anwenden).;box()
daaxes=F
auch noch den Rahmen entfernen. Auch alsaxes
einplot
Parameter und nicht anpar
durch...
wiexaxt
/yaxt
, ist es gar nicht vollständig ausgeschrieben werden müssen.c(1,7)
eine Variable (l=c(1,7)
) ersetzen . (2) Ersetzenann
durchan
; (3) Ersetzen[xy]li
durch[xy]li
; und (4) Entfernen des zweiten, redundanten Argumentgrid
:grid(3,lt=1)
. Tatsächlich habe ich mir erlaubt, dies zu bearbeiten (wird überprüft).Python 2.7,
214311309 BytesDies ist mein erster Versuch hier, Code Golf zu spielen, daher bin ich sicher, dass dies verbessert werden kann. Am liebsten hätte ich die Grenzen nicht festgelegt, aber es scheint, dass matplotlib nicht erkennen kann, dass ich dort Kreise eingezeichnet habe, wo ich es getan habe. Ohne xlim () und ylim () werden nur die unteren beiden Kreise angezeigt.
Ausgabe:
Bearbeiten: Die Farbe der Ränder wurde korrigiert und die Tick-Nummern entfernt. Ich muss sagen, Matplotlib ist sehr dicht gefasst und nicht zu freundlich, wenn sich die Achsenfarben ändern.
3 Bytes gespart dank @DJMcMayhem
Bearbeiten: Zwei Bytes wurden entfernt, indem meine Häkchen als Tupel innerhalb von set_ticks-Funktionen gesetzt wurden.
quelle
for s in'xy':exec"x.set_"+s+"ticks(a);"+s+"lim(-.5,2.5);"
. (Ich habe das aber nicht getestet, also bin ich nicht positiv)Bash + ImageMagick,
233226 ZeichenBeispielausgabe:
Bash + ImageMagick, 215 Zeichen
Der Eigentümer der Frage hat die Antialiasing-Frage noch nicht beantwortet. Bei einigen anderen Lösungen werden durch das Antialiasing zusätzliche Graustufen hinzugefügt. Daher sieht diese kürzere Frage vorerst auch akzeptabel aus.
Beispielausgabe:
quelle
Ruby,
144166164148144 BytesAusgabe:
Bearbeiten: Hat jetzt graue Gitterlinien.
quelle
d=d+1
hat eine kürzere Form (d+=1
) und ist==1
hier gleichbedeutend mit>0
. Überlegen Sie auch, was passiert, wenn Sie c auf ein Fixnum anstelle eines Arrays setzen :-)[]
als wäre es ein Array von Bits (schreibgeschützt, aber das ist hier in Ordnung).g=[2,13,24]
g=2,13,24
each
map
PNG,
105100 Bytes(dh diese Bilddatei)
Angesichts der Tatsache, dass HTML und andere Nicht-Programmiersprachen zulässig sind , war ich neugierig, wie viel ich für ein einfaches, vom Browser anzeigbares Bild ausgeben kann, um es als Vergleichsbasis zu verwenden. Das Ergebnis wird mit den Open-Source-Tools optipng (
-o7 -zm1-9 -strip all
) und pngwolf komprimiert . Ich habe auch mit Zopflipng experimentiert , aber die Ergebnisse waren größer. Andere Closed-Source-Komprimierungstools können möglicherweise ein paar Bytes mehr einsparen.Bilddaten in base64:
Code-Snippet anzeigen
Bearbeiten Ich ließ die Punkte die Zelle oben und unten berühren, um mehr Wiederholungen im Pixelmuster zu bewirken und damit das Kompressionsverhältnis zu verbessern. Aber keine Sorge, ein Punkt füllt immer noch (7 * 9) / (9 * 9) ≈ 78% seiner Zelle aus.
Nicht-Standard-PNG, 88 Bytes
Wie von @anatolyg hervorgehoben , besteht ein gewisses Golfpotential , wenn der IEND-Block (12 Byte) entfernt wird. Technisch ist IEND vom Standard vorgeschrieben . Jeder PNG-Block enthält jedoch seine eigene Größe und Prüfsummeninformationen. Es ist daher nicht unbedingt erforderlich, einen Endmarker zu haben. Tatsächlich können alle von mir getesteten Browser das Bild ohne Probleme anzeigen.
Leider (oder zum Glück) wird dieses nicht standardmäßige Bild von imgur abgelehnt, so dass ich es nicht hochladen kann. Dies ist die Base64-Codierung:
Code-Snippet anzeigen
quelle
PNG
ist keine Programmiersprache.Oktave ,
127124 Bytes3 Bytes dank Luis entfernt.
grid
ist ausreichend (stattgrid on
).Ausgaben (nach dem Speichern):
Beachten Sie, dass in der Ausgabe graue Gitterlinien im Plotfenster angezeigt werden. Sie werden beim Speichern schwarz (aus irgendeinem Grund).
Nun, das war lang und chaotisch! Musste eine Menge Modifikationen durchlaufen , damit dies den Spezifikationen entspricht.
Erklärung und hoffentlich etwas Golfspiel ...
quelle
'square'
, um es auf allen Plattformen quadratisch zu machen.spy([0,1,0;0,0,1;1,1,1],'.k',80),set(gca,'XTick',.5:4,'XTickLabel','','YTick',.5:4,'YTickLabel',''),axis(.5+[0,3,0,3],'square'),grid on
.Verarbeitung,
212198 BytesGrundsätzlich verwenden wir die einfache Verarbeitung, um einen weißen Hintergrund zu zeichnen, dann die Transparenz der für das Raster verwendeten Rechtecke festzulegen und ihre Striche in Grau zu zeichnen. Wir definieren das Rechteck, setzen den Füllwert erneut, um die Kreise schwarz zu füllen, und definieren fünf Kreise.
Voilà!
Sie könnten hinzufügen
oder mehr, um die Farbe der Striche besser zu sehen.
(Das ist mein erster Code-Golf, ich hoffe ich habe alles richtig gemacht.)
EDIT: Danke an Kritixi Lithos! Die Zeilenumbrüche wurden entfernt, in int f = 25 geändert und -1 im Hintergrund verwendet (float)
quelle
float f=25;
aufint f=25;
undbackground(-1)
anstelle vonbackground(255);
Tikz,
193175170 BytesHier ist die Ausgabe:
quelle
MATL ,
7469686462 BytesProbieren Sie es bei MATL Online! (Es dauert einige Sekunden.)
Ausgabe vom Online-Dolmetscher:
quelle
Verarbeitung, 134 Bytes
Inspiriert von @Zep, hier ist mein Processing One-Liner (und auch mein erster Code Golf):
Vielen Dank für @Kritixi Lithos für seine brillanten Tipps, um ein paar Bytes zu sparen!
quelle
for(int i=0,x,y;...
so dass Sie dieint
im Rumpf der Schleife ablegen können. Darüber hinausfill(255);
kann nur werdenfill(-1);
+20
während Sie die Werte vonx
und einstelleny
, so dass Sie dasrect
torect(x+5,y+5,30,30);
und dasellipse
to ändernellipse(x+20,y+20,23,23);
und zwei Bytes sparen können.LaTeX + Tikz, 155 Byte
quelle
1/0
eine Spaltung?x
undy
Koordinaten..5
, damit es gerecht wird1
.[step=2]
), um ein größeres Gitter zu erzeugen. Das Vereinfachen der Koordinaten für das Zeichnen von Kreisen würde nicht genügend Bytes speichern. (Sie erhalten 157 Bytes, wenn Sie es tun)SmileBASIC, 125 Bytes
58081 (U + E2E1 im Block "Private Use Area") ist der Zeichencode für ein Kreissymbol. Das Einfügen in einen String würde ebenfalls funktionieren, aber da es in UTF-8 als 3 Byte codiert ist, würde es dieselbe Länge haben (und hier nicht korrekt angezeigt werden).
quelle
C #, 333 Bytes
Voll / Formatierte Version:
Die Idee ist einfach. Wir erstellen ein Grafikobjekt aus dem Bild und verwenden es, um das Bild komplett weiß zu machen. Bewegen Sie sich dann über jedes Quadrat des Bildes und zeichnen Sie das Begrenzungsrechteck. Wenn es eine der Stellen für einen Punkt ist, zeichnen wir das auch. Zuletzt speichern wir das Bild in einer Datei und lassen Windows entscheiden, wie es geöffnet wird. In meinem Fall wird es mit Windows Photo Viewer geöffnet.
Die Verwendung von a
Process
zum Anzeigen des Bildes und Speichern in einer Datei ist viel kürzer als das Erstellen von Windows Forms oder einer WPF-App, da all die verschiedenen Klassen und der zusätzliche Flaum für die Erstellung erforderlich sind.Ausgabe:
quelle
PHP, 221 + 2 Bytes
Speichern unter; im browser anrufen. Sollte Ihr Browser Kauderwelsch anzeigen,
fügen Sie
header("Content-Type:image-png");
vorimagepng($i);
.Die Punkte sind nicht sehr rund; das liegt an den kleinen Anteilen.
Nervenzusammenbruch
Ich denke das
0x4c4b40
qualifiziert sich als ungefähres Grau. Wenn nicht, fügen Sie vier Bytes hinzu.quelle
R 313 236 Bytes
Der überarbeitete Code basiert hauptsächlich auf Kommentaren von @ user2390246, die 77 Byte gespeichert haben. Vielen Dank für die Hilfe.
Außerdem möchten Sie der kürzeren R-Lösung von @mschilli einen Hinweis hinzufügen. Es zeigt eine elegante Möglichkeit, das Problem der grafischen Standardeinstellungen von R zu lösen.
Ausgabe
Geht zu einem Dateinamen "r". Das Weglassen und die Erweiterung haben mir vier Bytes gespart. Aber dann musste ich die Dateierweiterung wieder auf "bmp" ändern, damit sie hochgeladen werden konnte. Vielleicht sollte ich diese vier Bytes nicht gutschreiben lassen.
Kommentar
Ich dachte mir: "Diese Grafik ist nichts anderes als eine einfache Grafik mit fünf Punkten. Sollte in einer Sprache mit robusten Datengrafikfunktionen einfach zu implementieren sein. Probieren wir es in R aus." Aber dann musste ich in der Größenordnung von 80% der Bytes ausgeben, um die grafischen Standardeinstellungen von R zu umgehen.
Irgendwie das falsche Werkzeug für den Job ....
Ich konnte keine weniger ausführliche Methode finden, um die Größe und das Seitenverhältnis der Grafik zu gewährleisten, als den bmp-Konstruktor und dann dev.off () aufzurufen. Die Kombination macht 25 Bytes aus. Wenn Ihre R-Sitzung richtig eingerichtet ist, erhalten Sie möglicherweise eine Grafik, die mehr oder weniger korrekt aussieht, ohne diese Bytes auszugeben, die jedoch nicht zuverlässig oder konsistent ist.
quelle
b
die beiden unbenannten Vektoren direkt in dieplot
Funktion ein. Verwenden Siec(l,3)
fürxaxp
undyaxp
. Sie können nurF
false verwenden, ohne es definieren zu müssen. Und definieren Sie eine neue Funktiona(x,...)
, die aufruft,axis(x)
aber Standardwerte für Beschriftungen, tck usw. hat, damit Sie sie nicht alle zweimal angeben müssen.axes=F
stattxaxt='n',yaxt='n'
. Und Sie haben vergessen,.5
beim Definieren zu verwenden ,l
obwohl Sie diesen Trick später verwendet haben..5
s insgesamt loszuwerden ?.bmp
Dateierweiterung bereits entfernen möchten, können Sie die Datei auch einfach benennenr
.TI-BASIC,
218140137 BytesHinweis: Diese Byteanzahl ist etwas erhöht. Das Programm verwendet nur 85 Token, aber das ist in 137 Bytes gespeichert. Wenn Sie einen Taschenrechner ohne Farbe verwenden, können Sie weitere 4 Token speichern, da Sie die Farbe nicht angeben müssen (standardmäßig blau), aber ich weiß nicht, ob die Bildschirme groß genug sind Diese Herausforderung, weil ich keine besitze.
prgmHACKER (138 Bytes, 86 Token):
Für eine ordnungsgemäße Anzeige setzt dieses Programm voraus, dass Xmin = Ymin = 0, Xmax = Ymax = 3, Xscl = Yscl = 1 ist. DX muss ebenfalls ordnungsgemäß festgelegt werden, der Rechner erledigt dies jedoch für Sie, wenn Sie eine andere Fenstervariable festlegen. Ich konnte nicht sehen, wie viel Speicherplatz diese Variablen im RAM verwendeten.
Darüber hinaus sollten die Formateinstellungen {RectGC, CoordOff, GridLine, GridColor: MEDGRAY, Achsen: OFF, ExprOff, BorderColor: 1, Background: OFF} lauten. Diese Werte sind jedoch umgeschaltet und belegen je nach Einstellung keinen zusätzlichen Platz.
quelle
{0,1,2,1,2}
und{0,0,0,2,1}
dann0.5
zu jedem Element hinzufügen .L1
undL2
zuL₁
undL₂
, da Sie sie bereits verwenden. Ich denke, Sie können entfernen}
undL₁(I)+.5→A
=>.5+L₁(I
undL₂(I)+.5→B
=>.5+L₂(I→B
.R,
119114111 Bytes(Danke an @JayCe , dass du mir 3 Bytes gespart hast)
Nicht kürzer als die andere R-Lösung , aber ein völlig anderer Ansatz:
Verwendet ein Layout, in dem die 4 ersten Diagramme die leeren Zellen sind und die 5 anderen die mit Punkten.
quelle
Excel VBA, 180 Byte
Eine anonyme VBE-Direktfensterfunktion, die keine Ein- und Ausgaben für das Standardarbeitsblattobjekt (
Sheet1
) vornimmt .Kommentierte Version
Ausgabe
-6 Bytes für die Verwendung von
[{21,32,13,23,33}]
überSplit("21 32 13 23 33")
-2 Bytes für die Verwendung von
Mid(s,2)
überRight(s,1)
-3 Bytes für die Verwendung von
(s\10)
überLeft(s,1)
quelle
Oktave
10794103 Bytesoder
Beide Lösungen sind 103 Bytes.
quelle
line([x1,x2],y)
line([x1,x2],[y,y])
Apple Swift (iOS - CoreGraphics / QuartzCore) - 832 Bytes
Ich habe die Form komplett mit Quartz für ein Apple iOS-Gerät gezeichnet. Leider ist dies keine besonders große Sprache, daher ist das Ergebnis ziemlich groß, aber so klein, wie ich es bekommen kann.
Eine lesbarere Version für alle Interessierten:
Hier ist die Ausgabe, die im iOS-Simulator erstellt wurde:
quelle
Ruby with Shoes, 118 Zeichen
Bit Prüfung entlehnt RJHunter 's Kommentar gemacht auf Mark Thomas ' s Ruby - Lösung .
Beispielausgabe:
quelle
SVG + HTML,
146138135133 BytesDank des nachgiebigen HTML-Parsers können die
xmlns="http://www.w3.org/2000/svg"
Deklaration, Attribut-Anführungszeichen und das schließende Tag weggelassen werden. Diese Version behebt einige Probleme anderer HTML-Lösungen:Bearbeiten Sie 8 Bytes weniger, indem Sie die Tatsache ausnutzen, dass Unterpfade nicht geschlossen werden müssen, um gefüllt zu werden .
Bearbeiten Nach der SVG-Grammatik ist es nicht erforderlich, Nicht-Ziffern mit einem Komma (
.5,.5
) zu trennen . Ich habe auch die explizite Füllung aufgegeben, damit ich die Zeichenrichtung einer Linie von negativ nach positiv ändern und einen Strich sparen kann. Und zum Schluss habe ich die Anzahl so angepasst, dass keine nachgestellte Zeile eingefügt wird. Tut mir leid für diesen Anfängerfehler.Bearbeiten von Lern einer anderen Antwort auf codegolf, ich habe die endgültige Fassung
9 />
mit9>
. Dies funktioniert problemlos in allen getesteten Browsern.quelle
Python 3 + PyGame, 238 Bytes
Die scheinbar willkürlichen Konstanten versuchen von mir, das Bild so groß wie möglich zu machen, ohne Bytes zu opfern.
Mit nicht druckbaren Zeichen, 229 Bytes
Ich habe die Listen durch Byte-Literale ersetzt, wodurch eine Reihe von Zeichen gespeichert werden, aber die nicht druckbaren Zeichen können hier nicht richtig angezeigt werden. Ich habe die nicht druckbaren Zeichen zu Anzeigezwecken durch ihre grafischen Entsprechungen U + 2400-U + 2421 ersetzt.
quelle