... Wirst du mir helfen, es zu verewigen?
Ich habe dieses Kissen jetzt ein paar Jahre gehabt, und anscheinend ist es Zeit, es loszuwerden. Können Sie bitte eine Funktion oder ein Programm schreiben, das ich mitbringen und verwenden kann, um dieses Kissen nachzubauen, wann immer ich mich ein bisschen erinnern möchte?
Es muss ohne Eingabeargumente funktionieren.
Die Ausgabe sollte genau so aussehen (nachgestellte Zeilenumbrüche und Leerzeichen sind in Ordnung).
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
Das ist Code Golf, also gewinnt der kürzeste Code in Bytes!
Bestenliste
code-golf
ascii-art
kolmogorov-complexity
Stewie Griffin
quelle
quelle
Antworten:
05AB1E ,
1815 BytesCode:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
/// 116 Bytes
Probieren Sie es online!
Edit : die
\\\\\\\\\\\\\\\/
und\\\\\\\\\\\\\\\\
sind eigentlich ein einzelnes / und \.Edit : -3, weil ich daran gedacht habe, es zu entfernen
i
. Ich denke, das kann nicht weiter golfen werden.quelle
Python 2, 49 Bytes
Vielen Dank an Mitch Schwartz für diese saubere Methode, die ein Byte spart. Die Idee ist, vier Zeilen zu drucken
('\\'*5+'/'*5)*6
, die Rollen von Schrägstrich und Backslash zu vertauschen und dann den gesamten Vorgang sechsmal durchzuführen. Die beiden Zeichen werden ina
und gespeichertb
und vertauscht alsa,b=b,a
. Die Doppelschleife wird doppelt ausgeführt, indem die folgende Code-Zeichenfolge generiert und anschließend ausgeführt wirdexec
:50 Bytes:
Erstellt die Zeilenfolge, druckt sie viermal und kehrt sie dann um. Dann macht man das sechsmal. Dazu wird der folgende Code generiert und anschließend ausgeführt:
Hier sind einige der Iterationen meines Golfspiels:
quelle
05AB1E, 15 Bytes
Probieren Sie es online!
Erläuterung:
Verwendet die CP-1252- Codierung.
quelle
JavaScript (ES6),
686058 ByteEine rekursive Funktion. Mehrere von Chocochaos inspirierte Optimierungen antworten .
Demo
Code-Snippet anzeigen
quelle
&1
n < 480
. Fürn >= 480
würden wir Klammern müssen:(n/240^n/5)&1
.Bubblegum , 30 Bytes
Obligatorische Bubblegum-Antwort.
quelle
Haskell,
777057 BytesLangweiliges
concat
s undreplicate
s statt mit Sinus zu spielen. Alt war:quelle
Brainfuck, 140 Bytes
:-D
quelle
Python 2,
8680767473 BytesKönnte wahrscheinlich ein paar mehr Golf spielen, aber es ist ein Anfang.
Bearbeiten
Gespeichert 6 durch Entfernen einiger nicht benötigter Klammern
Weitere 4, indem Sie eine einzelne Zeichenfolge verwenden und diese dann umkehren
Vielen Dank @Adnan. Hatte eine späte Nacht letzte Nacht und noch nicht ganz wach: p
-1, indem Sie
*24
auf die Variable verschieben, anstatt sie zweimal zu verwendenquelle
*6*4
ist das selbe wie*24
? : pBrainfuck, 149 Bytes
Der beste Dolmetscher EVAR!
Dies verwendet 6 Zellen (kein Wrapping, kein Modulo). Hier sind sie:
Die
00
Zellen werden für die Schleifenzähler verwendet. Hier werden die Zähler mit Anfangswerten gefüllt:Der Zähler ganz links ist für die innerste Schleife (ja, ich verwende verschachtelte Schleifen der Tiefe 3). Bitte beachten Sie, dass die 4. Zelle (
04
Zähler) zweimal, einmal für/////\\\\\...
und einmal für\\\\\/////...
jedes Mal verwendet wird.0A
,2F
Und5C
sind die Zeichen\n
,/
und\
, respectively.quelle
Python 2.7 66 -> 56 -> 55 Bytes
Neu im Code Golf
Vielen Dank, Stewie Griffin
Habe ein albernes Leerzeichen vergessen;)
quelle
d
unde
vielleicht noch mehr. Ich habe nicht getestet, aber es sollte in der Nähe sein:print(4*c+4*(6*b+"\n"))*3
. Es sind 5 Bytes weniger.a="/"*5+"\\"*5;print(4*(6*a+"\n")+4*(6*a[::-1]+"\n"))*3
Brainfuck, 179 Bytes
Ich weiß, dass dies nicht die beste Punktzahl im Thread ist, aber ich wollte Brainfuck ausprobieren und es versuchen.
Bearbeiten: Ich muss einen Fehler beim Kopieren gemacht haben. Diese Version sollte funktionieren
quelle
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
viermal, dann unendlich\
.Dyalog APL , 24 Bytes
quelle
'/\'[4⌿5/2|+/¨⍳6 12]
(benötigt⎕io←0
)Pyke, 16 Bytes
Nach dem heutigen Update erlaubt das
"
in String-Literalen 17 BytesProbieren Sie es hier aus!
quelle
MATL ,
1816 BytesProbieren Sie es online!
Erläuterung
quelle
Pyth, 22 Bytes
Probieren Sie es hier aus .
Erläuterung:
Tut mir leid, wenn die Erklärung etwas schwer zu verstehen ist, aber es war ein bisschen kompliziert.
quelle
V ,
22-21BytesEdit Ein Byte gewonnen, danke @DjMcMayhem:
Änderungen sind:
Y4P
->4Ä
Verwenden Sie V duplicate line anstelle von Vim built-in command (dies fügt eine leere Zeile am Ende des Absatzes hinzu)3äG
->3ä}
Dupliziere den Absatz anstelle des gesamten Puffers (um Leerzeilen zu vermeiden, die durch vorherige Änderungen erzeugt wurden)Ursprünglicher Beitrag
Probieren Sie es online aus
So zerlegt:
quelle
5á\5á/05ä$5Ä5x$p4Ä3äG
dh ersetzenY4P
durch ,4Ä
aber aus einem Grund, ich verstehe nicht , kopiert es eine zusätzliche Leerzeile ... Wenn Sie können Erleuchten Sie mich auf diesem es wäre nett. Auch wenn ich etwas Freizeit finde, würde ich gerne zur Sprache beitragen (insbesondere Ausgabe 4 )Ä
es ein Synonym für istdd
, nichtY
. Dies ist normalerweise kein Problem, verursacht jedoch einige Probleme, wenn der Puffer nur eine Zeile enthält oder Sie sich in der letzten Zeile befinden.3äG
mit ,3ä}
da es wird nicht das letzte Newline zerrt. v.tryitonline.net/…Jelly ,
1716 BytesProbieren Sie es online!
Danke an 6710 (Meilen) für -1 Byte.
quelle
⁾/\ẋ6Wẋ4;U$ẋ3x5Y
Y
!Eigentlich 21 Bytes
Probieren Sie es online!
-1 Byte von Adnan
Erläuterung:
quelle
"/\"5*S
um eine Reihe von Schrägstrichen zu erstellen?Ruby, 46 Bytes
Erstellt die folgende Zeichenfolge (70 Zeichen, eine Zeichenfolge mehr als erforderlich) und wechselt dann zwischen den Abtastzeichen
0..59
und der entsprechenden Zeichenfolge5..64
.Code und Ausgabe
interessanter Fehler (eine 7 anstelle einer 5)
quelle
APL, 30 Bytes
Ich bin ziemlich neu in APL (ich verwende APLX, aber dies sollte für die meisten Implementierungen von APL funktionieren), daher ist dies eine ziemlich vereinfachte Lösung.
Erläuterung:
quelle
C,
6661 Bytes5 Bytes gespart dank orlp.
Zeichen für Zeichen einfach zu drucken. 61 Zeichen pro Zeile, letzte Zeile ist Newline (ASCII 10) und die anderen wechseln sich zwischen
/
47 und\
92 ab.quelle
i;f(){for(i=1463;i;)putchar(i--%61?i%61/5+i/244&1?92:47:10);}
.i--
aber ich hatte keine Zeit danach zu suchen.Python 2, 63 Bytes
Führen Sie dies für Python 3 aus (65 Byte):
quelle
/////\\\\\/////...
vier Mal, durch Zeilenumbrüche getrenntSelbstmodifizierender Brainfuck , 91 Bytes
Probieren Sie es online!
Entspricht meiner Brainfuck-Antwort , verwendet jedoch die letzten 3 Zeichen des Quellcodes, anstatt sie zur Laufzeit zu generieren.
quelle
J,
312819 BytesVerwendungszweck
quelle
Oktave,
5048 BytesAnonyme Funktion:
Sie können es hier online versuchen . Führen Sie einfach den obigen Befehl aus und führen Sie dann die Funktion mit aus
ans()
.Dies erzeugt im Wesentlichen ein Array mit dem Wert 47, das 4 hoch und 5 breit ist. Anschließend wird ein zweites Array mit dem Wert 92 erstellt, das dieselbe Größe hat.
Die beiden Arrays sind zu einem Schachbrett aus zusammengesetzt
[A B;B A]
. Das''
wird auch verkettet, um die Konvertierung in Zeichenketten zu erzwingen.Schließlich wird das gesamte Array 3-mal nach unten und 6-mal nach unten repliziert, um die endgültige Größe zu erhalten.
quelle
ans=
vor dem Kissen gedruckt . Wenn Sie es in der Funktion haben, können Sie dies umgehen, da erwartet wird, dass die Antwort auf eine Variable zurückgegeben wird, anstatt sie anzuzeigen.ans()
). Welches ist sinnlos, daans()
noch drucktans
bei der Ausführung!ans()
ist ein aufrufbares Funktionshandle, daher müssen Sie es keinem Element mit zuweisen, z. B.a=@...
weil es implizitans
als Handle zugewiesen ist. Außerdem wirdans=
beim Ausführen nicht gedruckt , es sei denn, Sie fordern ausdrücklich dazu auf, nichts mit dem zurückgegebenen Wert zu tun und kein a hinzuzufügen;
. Wenn Sie dies tundisp(ans())
, wird nur die genaue Ausgabe gedruckt (neinans=
). Aber ja, die Warnung ist ärgerlich, aber das ist vorher nicht geschehen, also nicht sprachspezifisch, sondern dolmetscherspezifisch.disp(ans())
Ihrer Antwort 12 Bytes hinzufügen , wenn Sie sich darauf verlassen, bevor Sie Ihre Ausgabe erhalten. Meine eigene Meinung ist, dass dies nur die Art und Weise ist, wie die Oktave ihr Ergebnis präsentiert, und das ist in Ordnung.PHP,
7369 BytesDemo
http://ideone.com/z7N1Md
quelle
for($s='/\\';$i<1440;$i++)echo$i%60<1?'\n':'',$s[($i/5+($i/240|0))%2];
(Ersetzen Sie die\n
durch eine echte Newline).echo
ist keine Funktion, daher werden keine Klammern benötigt. Auchecho
können mehrere Werte erhalten, durch ein Komma getrennt. Dadurch werden diese Klammern nicht mehr benötigt. Und dann benötigt auch$s[...]
die äußerste Berechnung in Ihrem Inneren keine Klammern, da sie in withing enthalten ist[]
. Verwenden$s[($i/5+($i/240|0))%2]
hat den gleichen Effekt und ist kürzer.echo
undprint
akzeptieren Sie mehrere Parameter. Aberprint
erfordert parenthesys mit mehreren Parametern , wenn sie auf einer Schleife der Zuwachs, den Zustand oder Zuweisung verwendet.<1
durch Umschalten der Ausdrücke dieecho$i%60?'':' ',
neue Zeile als Ausdruck 3 im Ternär abschneiden .Java 7, 120 Bytes
Alles in eine Schleife geschoben. Beats Brainfuck, Mission erfüllt.
Sehen Sie es online: https://ideone.com/pZjma3
quelle
Vim,
4427 BytesEDIT Lot von Bytes gewann dank @DrMcMoylex:
Ursprüngliche Antwort:
Ich bin mir nicht sicher, ob das wirklich den Regeln dieser Seite entspricht, aber ich dachte, es hat Spaß gemacht, es auszuprobieren:
Was kann wie folgt zerlegt werden:
quelle
5i/<esc>5a\<esc>0y$5P
zu Beginn 9 Bytes einsparen.Brainfuck, 168 Bytes
quelle