Generieren Sie die folgende Fußballmannschaft-ASCII-Grafik mit der geringstmöglichen Anzahl von Bytes.
|.| |.| |.| |.| |.| |.| |.| |.|
]^[ ]^[ ]^[ ]^[ ]^[ ]^[ ]^[ ]^[
/~`-'~\ /~`-'~\ /~`-'~\ /~`-'~\ /~`-'~\ /~`-'~\ /~`-'~\ /~`-'~\
{<| 8 |>}{<| 6 |>}{<| 1 |>}{<| 3 |>}{<| 7 |>}{<| 5 |>}{<| 4 |>}{<| 2 |>}
\|___|/ \|___|/ \|___|/ \|___|/ \|___|/ \|___|/ \|___|/ \|___|/
/ \ / \ / \ / \ / \ / \ / \ / \
/__|__\ /__|__\ /__|__\ /__|__\ /__|__\ /__|__\ /__|__\ /__|__\
| / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ | | / \ |
(/ \) (/ \) (/ \) (/ \) (/ \) (/ \) (/ \) (/ \)
|) (| |) (| |) (| |) (| |) (| |) (| |) (| |) (|
(.|,.,|,)(,|,.,|.)(.|,.,|,)(,|,.,|.)(.|,.,|,)(,|,.,|.)(.|,.,|,)(,|,.,|.)
Beachten Sie, dass die Füße der Spieler abwechselnd (.|,.,|,)
und spiegelverkehrt sind, ihre Augen jedoch alle in dieselbe Richtung zeigen `-'
.
Ergebnis
Wenigste Anzahl von Bytes gewinnt!
Regeln
- Es gelten Standardschleifenlöcher
- Beliebige Anzahl von Leerzeichen am Ende / Anfang zulässig.
Antworten:
Charcoal ,
1069592917977 BytesProbieren Sie es online!Bearbeiten: 11 Bytes durch Durchlaufen der Trikotnummern gespeichert. 3 Bytes gespart durch Ermittlung der ArbeitsweiseJ
. Speichert ein weiteres Byte mit separaten Mirror-Anweisungen. Durch Komprimieren der Halbplayer-Zeichenfolge konnten dank nur @ ASCII 12 Bytes eingespart werden. 2 Bytes durch Wiederholen des Spiegels in einer Schleife gespeichert. Erläuterung:Bearbeiten: Der obige Code funktioniert in der aktuellen Charcoal-Version nicht mehr. Die Komprimierung der Zeichenfolge scheint sich geändert zu haben, und der Befehl reflect akzeptiert jetzt eine Mehrrichtungsfunktion und lässt den Cursor an einer anderen Position. Es ist jedoch möglich, den Code so anzupassen, dass er für dieselbe Bytezahl in der aktuellen Kohle ausgeführt wird. Probieren Sie es online! Link ist eine ausführliche Version des Codes. (Beachten Sie, dass der Deverbosifier
6137542
aus irgendeinem Grund versucht, die Daten zu komprimieren, obwohl dies nicht erforderlich ist .) Anschließend können Sie ein weiteres Byte zurücklegen. Probieren Sie es online! Link ist eine ausführliche Version des Codes.quelle
-sl
ist nur zu zeigen, Länge, die ausgelassen werden kann'
, aber zum Glück habe ich den Fehler vor dem Speichern der Bearbeitung entdeckt.Brainf ** k,
855852 BytesDas ist zu lang
Erläuterung:
quelle
*
s , die 3 Bytes hinzufügen, so jetzt Ihre Bytes sollten 852. 2. Sie können ersetzen sein[-]
mit,
, weil einige Dolmetscher da draußen auf nicht mehr Eingang Ausgänge0x00
V , 127 Bytes
Probieren Sie es online!
Wie immer ist hier ein Hexdump:
quelle
SOGL ,
92888785 BytesErläuterung:
Die komprimierte Zeichenfolge ist
mit Bindestrichen (weil diese mit Boxstrings komprimiert werden könnten) anstelle von ungewöhnlichen Zeichen, die dann ersetzt und dann in Zeilen aufgeteilt werden, um zu erhalten
quelle
JavaScript (ES6),
196194214210204 ByteIch spiele am frühen Morgen wieder Golf auf meinem Handy, also gibt es Raum für Verbesserungen.
Musste ein paar Bytes opfern, um die Füße zu reparieren, von denen ich nicht bemerkt habe, dass sie sich abwechseln.
Versuch es
(Veraltet) Erklärung
Wir beginnen mit einer Zeichenfolge, die die Zeichen eines einzelnen Spielers enthält, wobei jede Zeile durch ein
n
, a0
als Platzhalter für die Zahl und1
&2
als Platzhalter für die Satzzeichen in den alternierenden Füßen getrennt ist.Wir teilen den String in ein Array der einzelnen Zeilen auf
n
, ordnen sie diesem Array zu und ersetzen jedes Element durch achtmaliges Wiederholen. Anschließend fügen wir die Zeichenfolge mit einem wörtlichen Zeilenumbruch zu einer Zeichenfolge zusammen.Schließlich ersetzen wir jede Zahl in der Zeichenkette entweder durch die erforderliche Spielernummer, wenn die Zahl ist,
0
oder durch das erforderliche Zeichen, um die Füße des Spielers zu vervollständigen, wenn die Zahl1
oder ist2
.quelle
Rubin, 161
Jetzt mit wechselnden Füßen. Intern erzeugt es 8 doppelte Fußsätze (insgesamt 16). Einige davon werden entfernt, indem auf 72 Zeichen pro Zeile gekürzt wird.
Rubin, 144
Ziemlich einfach, druckt Zeile für Zeile 8 Teilfußballer gleichzeitig und ersetzt die Trikotnummern durch den
%
Operator (wiesprintf
) (wenn die Zeichenfolge keine enthält, werden%d
sie ignoriert).quelle
Java,
391444 BytesEDIT: Wirklich behoben. Gott, das hat die Größe wirklich gesteigert
Erweitert
quelle
i%2>0
Speichert ein Byte,i++%2>0
funktioniert vielleicht sogar . Wie auch immer, die Bedingung kann in ein ternäres System innerhalb der Tabelle eingefügt werdenprint(...)
. Das Erstellen des Arrays im Schleifenkopf sollte auch ein oder zwei Bytes speichern. Ich bin mir nicht ganz sicher, aber ich denke, in der letzten Zeile der Beine fehlt ein Leerzeichen ...class B{int i;void p(String s){System.out.print(s);}void e(String s){for(i=8;i-->0;)p(s);p("\n");}void a(){e(" |.| ");e(" ]^[ ");e(" /~`-'~\\ ");for(int i:new int[]{8,6,1,3,7,5,4,2})p("{<| " + i + " |>}");p("\n");e(" \\|___|/ ");e(" / \\ ");e(" /__|__\\ ");e(" | / \\ | ");e(" (/ \\) ");e(" |) (| ");for(i=8;i-->0;)p(i%2<1?"(,|,.,|.)":"(.|,.,|,)");}}
"nur" 366 Bytes. Vorsicht beim Kopieren / Einfügen: Die SE-Software fügt einige Zeichen hinzu, um die Kette zu teilen. Bemerkungen: Beine, Kopf usw.class B{...}
kann auch entfernt werden (was auch ohne -methode ziemlich sinnlos istmain
). Außerdem können Sie Golf auf den Code in Ihrem Kommentar weiter durch Änderungvoid p(String s){System.out.print(s);}
zu<T>void p(T x){System.out.print(x);}
.05AB1E ,
126124108106110 BytesDanke an Emigna für das Speichern von 7 Bytes!
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
quelle
JavaScript (ES6),
198197 ByteBeinhaltet einen Zeilenumbruch.
Demo
Code-Snippet anzeigen
quelle
Python 2.7, 179 Bytes
Codieren Sie einen Player als einzelne Zeichenfolge mit Out-of-Band-Zeichen, damit wir ihn in eine Liste aufteilen können. Dann können wir jede Ebene mit 8 multiplizieren und schließlich die erforderlichen Zahlen und Interpunktionen in die Ausgabe einfügen.
quelle
Python 2 ,
207197186201 BytesProbieren Sie es online!
Bei
207197 nichts sehr Schlaues und viel zu lang,aber soweit ich sehen kann, druckt es zumindest die Füße richtig.Bearbeiten Ein bisschen besser bei 186
Edit 2 Zurück zu über 200 nach dem Erkennen, warum die Füße tatsächlich nicht richtig waren. Gut verstecktes gotcha!
quelle
PHP, 204 Bytes
Probieren Sie es online!
PHP, 205 Bytes
Probieren Sie es online!
PHP, 211 Bytes
Probieren Sie es online!
quelle
[+$i]
braucht keine+
.for(;$y++<11;)for($p=print"\n";$n=_86137542[$p++];)
und[$y-1]
+
for(;$y++<11;)for($p=print"\n";$n=_86137542[$p++];)echo str_pad(["|.|","]^[","/~``-'~\\","{<| $n |>}","\|___|/","/ \\","/__|__\\","| / \ |","(/ \)","|) (|",$p&1?"(,|,.,|.)":"(.|,.,|,)"][$y-1],9," ",2);
)foreach
; deshalb brauchte ich nein+
.Ook! 8519 Bytes
Ich musste.
Port of Tony200910041's brainf ** k Antwort
quelle
C #, 420 Bytes
Golf:
Erweitert:
Inspiriert von Jesse Ms Java-Antwort, mit ein paar Änderungen, um es kürzer zu machen
quelle
i%2
anstelle von(i%2==0)
und umgekehrt speichern?:
Teile. Außerdem denke ich, dass durch dasWrite(" {0} ",s);
Trimmen des Leerraums aus denX()
Aufrufen weitere 10 Bytes eingespart würden.X
Methode entfernen und nur eine Schleife ausführen, glaube ich zumindest. Sie können zu einem kompilierenAction<string>
, um die Flusen zu entfernen. Das würde bedeuten, dass Sie ein zurückgebenstring
und es nicht ausschreiben müssen, um die Notwendigkeit für das zu beseitigenConsole
. Sie können das entfernen,using System
da dies nur benötigt wird,String
wenn Sie esstring
stattdessen verwenden können. Es gibt auch mehrere andere Verbesserungen. Es tut mir leid, aber es sieht nicht so aus, als hätten Sie versucht, so viel Golf zu spielen.Mathematica 282 Bytes
quelle
Netzhaut , 270 Bytes
Probieren Sie es online!
quelle
Bubblegum ,
130 bis117 BytesProbieren Sie es online!
quelle
Perl 5 , 206 Bytes
Probieren Sie es online!
Es ist hässlich und brachial, aber es funktioniert.
quelle