(verwandt / inspiriert von: Eine Bowling-Formation zeichnen )
In den Wintermonaten ist es ein lustiger Zeitvertreib, mit einem großen Ball (wie einem Basketball) und winzigen Schneemannfiguren Schneemann-Bowling zu spielen. Lassen Sie uns dies in ASCII neu erstellen.
Jeder Schneemann besteht aus:
(.,.)
( : )
Hier ist die Ausrichtung der zehn Schneemann "Stifte"
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
(.,.) (.,.)
( : ) ( : )
(.,.)
( : )
Diese "Stifte" sind von 1
bis 10
als gekennzeichnet
7 8 9 10
4 5 6
2 3
1
So weit, so normal. Im Gegensatz zum normalen Bowling werden die Schneemannstifte jedoch nur abgeflacht und nicht vollständig entfernt. Dies wird von jemandem durchgeführt, der den Schnee von Stiften, die getroffen wurden, manuell abflachen muss. Ein abgeflachter Schneemann wird durch _____
(fünf Unterstriche) mit einem Leerzeichen darüber dargestellt. Hier ist ein Beispiel mit 1 3 5 6 9 10
abgeflachten Stiften (was bedeutet, dass nur die 2 4 7 8
Stifte übrig bleiben):
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
Eingang
- Eine Liste von ganzen Zahlen von
1
bis10
in einem beliebigen geeigneten Format , die angibt, welche Stifte getroffen wurden und daher abgeflacht werden müssen. - Jede Nummer wird höchstens einmal angezeigt, und die Nummern können in beliebiger Reihenfolge (sortiert, unsortiert, absteigend sortiert) angegeben werden.
- Die Eingabe hat garantiert mindestens eine Ganzzahl.
Ausgabe
Die resultierende ASCII-Grafikdarstellung der Schneemannstifte mit den richtigen abgeflachten Stiften.
Regeln
- Führende oder nachfolgende Zeilenumbrüche oder Leerzeichen sind optional, sofern die Zeichen selbst korrekt ausgerichtet sind.
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Fügen Sie nach Möglichkeit einen Link zu einer Online-Testumgebung hinzu, damit die Benutzer Ihren Code ausprobieren können!
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
Beispiele
1 3 5 6 9 10
(.,.) (.,.)
( : ) ( : ) _____ _____
(.,.)
( : ) _____ _____
(.,.)
( : ) _____
_____
1 2 3
(.,.) (.,.) (.,.) (.,.)
( : ) ( : ) ( : ) ( : )
(.,.) (.,.) (.,.)
( : ) ( : ) ( : )
_____ _____
_____
1 2 3 4 5 6 8 9 10
(.,.)
( : ) _____ _____ _____
_____ _____ _____
_____ _____
_____
quelle
Antworten:
05AB1E ,
4544 BytesProbieren Sie es online!
Erläuterung
quelle
Schneemann 1.0.2 , 157 Bytes
Probieren Sie es online!
Als ich diese Herausforderung sah, wusste ich, dass ich nur in der perfekten Sprache antworten musste ...
Dies ist eine Unterroutine, die Eingaben als Array von Zahlen und Ausgaben als Zeichenfolge über den aktuellen Permavar akzeptiert.
Eingewickelt für "Lesbarkeit" / Ästhetik:
Leicht ungolfed / kommentierte Version:
quelle
gestapelt , nicht konkurrierend, 118 Bytes
deepmap
Nach dieser Herausforderung fügte ich einige weitere Dinge hinzu , zusammen mit Tonnen von Bugfixes. Probieren Sie es hier aus!Ungolfed
Ausgabe:
quelle
Python 2,
248243241226224223221210206200177 Bytes-5 danke an @Rod
-15 Nochmals danke an Rod
-1 mit Raumberechnung wieder von Rod
Sieht länger aus, da mehr Zeilen und Einrückungen vorhanden sind, ist aber überraschenderweise 11 Byte kürzer.
Ich bin sicher, das wird unter 200 gehen ...
Ich hatte recht, aber nicht ohne 23 Bytes wert von ernsthaften Hinweisen von @ Pietu1998. Danke vielmals!
Probieren Sie es online!
Nimmt die Eingabe als Liste von ganzen Zahlen. Bei 248 viel zu groß, aber es funktioniert.
quelle
C #
233221213203 BytesMethode nimmt ein Int-Array a als die Liste der gefallenen Pins
eingewickelt
erweitert
Einige Bytes durch Vorschläge in Kommentaren von Ghost, Rasnagul und Auhmaan abgeschlagen.
quelle
new[]{7,4,2,1}.Contains(i--)
i<9&&i%3==1||i==2
i==7||i<5&&i!=3
i==7|i<5&i--!=3
var o="";var x=...
indem Sie durch ersetzenstring o="",x=""...
.Batch, 262 Bytes
Hinweis: Die Zeilen 2, 3 und 4 enden in einem Leerzeichen und geben in jeder Zeile ein Leerzeichen nach. Diese können zu einem Preis von 5 Byte entfernt werden. Erstellt die Variablen s1 ... s10 als untere Hälfte der Schneemänner und reduziert dann die als Befehlszeilenargumente angegebenen. Die entsprechenden Reihen werden zweimal gedruckt, wobei die unteren Hälften zum ersten Mal durch die oberen Hälften ersetzt werden. Dies spart 18 Bytes bei Verwendung von zwei Sätzen von Variablen in der oberen und unteren Hälfte.
quelle
JavaScript,
154149 Bytesquelle
Pyth, 63 Bytes
Ein Programm, das eine Liste von ganzen Zahlen eingibt und das Ergebnis ausgibt.
Testsuite
[Erklärung kommt später]
quelle
Pyth, 51 Bytes
Der Code enthält einige nicht druckbare Dateien. Hier ist also ein
xxd
Hexdump.Probieren Sie es online aus.
Ohne unprintables 52 Bytes
Probieren Sie es online aus.
quelle
Javascript
178169 BytesIm Wesentlichen ein Port aus meiner C # Antwort.
Nimmt ein int-Array als Liste abgeflachter "Pins";
Gewickelt:
Erweitert und erklärt:
quelle