Sie müssen ein Programm oder eine Funktion in einer beliebigen Sprache schreiben, die dieses Muster ausgibt:
~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~
|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~||
|||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~||||
|||||~|||||||||||||||||||||||||||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||||||||||||||||||||||||||~||||||
|||||||~|||||||||||||||||||||||||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||||||||||||||||||||||||~||||||||
|||||||||~|||||||||||||||||||||||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||~|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~|~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|||~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~|||||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||||||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~|||||||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||||||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~|||||||||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||||||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
Die Ausgabe besteht aus 20 Zeilen mit jeweils 61 Zeichen.
Regeln
- Standardlücken sind verboten
- Am Ende der Ausgabe befindet sich möglicherweise eine einzelne nachgestellte Zeile
- In keiner Zeile der Ausgabe darf ein Leerzeichen nachgestellt sein
Ohne nachfolgende Newline ist die md5-Checksumme der Ausgabe fde4e3b4606bf9f8c314131c93988e96
.
Mit einem nachgestellten Zeilenumbruch ergibt sich die MD5-Prüfsumme der Ausgabe 1f0b43db4fec6594be202c8339024cb7
.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
Antworten:
C (GCC) ,
97828180 Bytes15 Bytes nach dem Erlernen
abs
des in C eingebauten Bytes , ein zusätzliches Byte dank Rogem für den Hinweis, dass die Deklarationen meiner Variablen in die Funktion verschoben werden können, und ein weiteres Byte dank ceilingcat für den Vorschlagx=31;--x+31
anstelle vonx=-31;++x<31
.Probieren Sie es online!
Dies wird mit einem nachgestellten Zeilenumbruch ausgegeben. Die Funktion
f
übernimmt die Ausgabe.Erläuterung
Die Ausgabe kann grafisch dargestellt werden.
(Das
+
s werden nur zu Erklärungszwecken angezeigt und stellen die Achsen dar.)Die Gleichung dieses Diagramms lautety=abs(10−abs(x)) wie hier in diesem Link zu einem Desmos-Diagramm zu sehen ist .
In Funktion
f
haben wir zwei for-Schleifen, die jede Koordinate in diesem Diagramm durchlaufen.y
geht von20
bis1
und x geht von-30
bis30
.Für jeden
x
prüfen wir, ob erabs(10-abs(x))
gleich ist,y
indem wir esabs(10-abs(x))-y
in einem Ternär machen. Wenn sie gleich sind, ergibt dies0
einen falschen Wert in C, andernfalls wird er zu einem positiven Wert ausgewertet. Dann im Dreiklangabs(10-abs(x))-y?"|":"~"
wirprintf
dementsprechend.Und nach jeder Zeile geben wir eine neue Zeile mit aus
puts("")
, und so gibt die Funktion eine nachfolgende neue Zeile aus.quelle
f(x,y)
anstelle vonx,y;f()
Holzkohle ,
1615 Bytes-1 byte dank notjagan
Probieren Sie es online!
quelle
M
implizites Entfernen von und Verschieben.R ,
7067 Bytes3 Bytes dank Giuseppe.
Probieren Sie es online!
quelle
""
in ein1
für -1.Jelly ,
1816 BytesProbieren Sie es online!
quelle
Python 2.7,
16313813513311391 BytesProbieren Sie es online!
Edit 1: -25 Bytes: habe den Algorithmus geändert, nachdem ich mich etwas ehrgeizig gefühlt habe. : P
2: -3 Bytes bearbeiten: mit freundlicher Genehmigung Felipe Nardi Batista
3: -2 Bytes bearbeiten: mit freundlicher Genehmigung bearbeiten shooqie
Edit 4: -20 Bytes: mit freundlicher Genehmigung notjagan
Edit 5: -22 Bytes: mit freundlicher Genehmigung von Leaky Nun
quelle
a,b,c='1','2','3'
ist das Gleiche wiea='1';b='2';c='3'
und das Gleiche wie das Platzieren jedes Attributs in einer eigenen Zeile, aber Sie können Bytes gewinnen, indem Sie Zeichenfolgen wiea,b,c='123'
n<m
kürzer alsn-m<0
?/// 231 Bytes
Probieren Sie es online! Oder sehen Sie es sich hier interaktiv an !
quelle
WendyScript , 65 Bytes (ohne Zeilenvorschub)
Probieren Sie es online!
Folgt dem gleichen Prinzip wie die oben gegebene C-Antwort. Die erste Zeile ist die
abs
Funktion, in der zweiten Zeile werden zwei für Schleifen und Ausgaben~
oder|
basierend auf dem Diagramm ausgeführt. Die letzte""
wird verwendet, um nach jeder Schleife eine neue Zeile auszugebeny
.quelle
abs
Funktion und Hauptfunktion besser erkennbar ist.Vim, 59 Bytes
Wo
^[
ist der<ESC>
Schlüssel?quelle
:11<CR>
kann sein11G
Japt , 32 Bytes
Probieren Sie es online!Achten Sie darauf, das Ausgabefeld zu erweitern.
Erläuterung
Stellen Sie
U
auf der|
20mal.einstellen
V
den Bereich[0,9]
(AÆ
) ein, der zugeordnet ist durch:U
(implizit), wobei das Zeichen am IndexX
(aktueller Wert) auf (h
) gesetzt ist~
.Set
W
zuV
jeder Linie 10 gedreht (A
) verkohlt rechts.Array erstellen:,
V, W, U
undV
mit jeder Zeile in umgekehrter Reihenfolge (w
). Dies ist nun die linke Hälfte der Form, um 90 ° nach links gedreht.Reduziere das Array (
c
), palendromisiere es (ê
), drehen um 90 ° nach rechts (z
) und fügen Sie neue Linien hinzu (·
).quelle
Pinsel , 36 Bytes
nicht konkurrierend
Erläuterung
Das erinnert mich daran, dass ich eine Spiegeloperation hinzufügen muss.
quelle
Oktave ,
1575754 BytesGolfen Sie weiter unten, dank der anderen Antworten und den Kommentaren.
Ich habe es wie die andere Antwort mit der abs (10-abs (x)) - Funktion angegangen und dann die richtigen ASCII-Zeichen verwendet, um das Bild auszudrucken.
quelle
Pyth , 22 Bytes
Probieren Sie es online!
quelle
V , 30 Bytes
Probieren Sie es online!
quelle
Jelly , 18 Bytes
Probieren Sie es online!
quelle
Bubblegum , 90 Bytes
Probieren Sie es online!
quelle
MathGolf , 22 Bytes
Probieren Sie es online!
Erläuterung
Es ist wahrscheinlich möglich, 2-3 Bytes davon weg zu golfen, ich werde sehen, was ich tun kann.
quelle
C (gcc) , 75 Bytes
Probieren Sie es online!
Völlig geändert von der Antwort von Cows Quacksalber
quelle
Positron , 165 Bytes
Probieren Sie es online!
Ich denke, Positron hat zu viele Fehler. Ich sollte es auf TIO updaten, da es dann
++
tatsächlich funktioniert.quelle
Mathematica,
7875 Bytesaußer das
\n
wird durch eine aktuelle newline ersetzt. Probieren Sie es online! ( In Mathematics gibt es aus irgendeinem Grund zusätzliche Leerzeichen am Anfang der Zeilen. In Mathematica funktioniert dies jedoch einwandfrei .)Ich hatte eine eigene Vorlage, aber dann fügte Kritixi Lithos eine Erklärung hinzu, die meiner sehr ähnlich war, aber eine etwas schlauere Formel verwendete. Dies ist nur ein Teil dieser Antwort. (Geh und lies das und stimme dem zu!)
quelle
Bubblegum , 93 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 87 Byte
quelle
Lua, 193 Bytes
Beachten Sie, dass Lua nichts ausdrucken kann, ohne eine neue Zeile zu erstellen. Aus diesem Grund muss ich eine der Regeln brechen.
Zum großen Teil minimiert:
Einige Änderungen wurden während der Minimierung vorgenommen, wodurch das Programm weniger erweiterbar, aber kleiner wird.
Versuchen Sie es: https://tio.run/##PY7LCoMwEEX3@YqQVVJTcWwRCp0vKV1oNa1QJ0UjGPr49TRq6eoO91wOcx/LEDp8vs1IF9da4lc5aa9aI6djkSt3a4h1pynxmwLOKD5iJog7sD2Pmf9yD@u0QrKOV6yhmkVTAtonUla8pHoLKm5BqZmtHHSmTCw9ZhoOvLZsQCHMogRdwNoMaSr/L9hevMSiePQtOTnMdwhf
Ich bin mir nicht sicher, ob jemand dies zuvor getan hat, aber ich habe versucht, durch Laden des Programms als Zeichenfolge und Verwenden von gsub (Suchen / Ersetzen) zu minimieren. Leider hat es das Programm vergrößert. Wenn dieses Programm jedoch groß genug wäre, würde es weniger Bytes ergeben.
Aufgrund seiner relativen Nähe zum tatsächlichen Ergebnis (240 Byte, nur 41 weitere) habe ich mir gedacht, dass ich es posten würde. Wenn dieses Programm mehr als 350 Bytes hätte, hätte es wahrscheinlich eine Reduzierung gegeben.
quelle
Java 8, 113 Bytes
Ich habe das Gefühl, die Schecks (
j==i|j+i==60|i>9&(j-i==20|j+i==40)
auf jeden Fall kann man Golf spielen, wenn man mehrere Schecks irgendwie zu einem kombiniert).Erläuterung:
Probieren Sie es hier aus.
quelle
Perl 5 , 79 Bytes
Probieren Sie es online!
quelle
Tcl , 104 Bytes
Probieren Sie es online!
Tcl , 105 Bytes
Probieren Sie es online!
Tcl , 109 Bytes
Probieren Sie es online!
Tcl,
143 133 123110Noch viel ungolfed, aber ich werde es weiterentwickeln:
Demo
quelle
05AB1E ,
20 bis19 BytesProbieren Sie es online aus.
Erläuterung:
20Ýû31∍û
generiert die Liste:quelle