Heute ist Bacon Day , weshalb der Hut für die heutige Teilnahme wahrscheinlich "Mmmm Bacon" heißt. Was gibt es Schöneres, als den Speck-Tag mit lustigen 2D-Matrizen aus Speck zu feiern! Ein 1: 1-Speckstreifen wird folgendermaßen dargestellt:
-----
)===)
(===(
)===)
-----
Ihr Ziel ist es, hier zwei Koordinaten in einem Tupel ( x
, y
) anzugeben , wobei x
und y
ungleich Null positive ganze Zahlen sind. Sie müssen den Speck erstellen und in einem bestimmten Format (Liste, Array, Zeichenfolge) zurückgeben.
Ein- und Ausgang:
Input: (2, 1)
Output:
----------
)===))===)
(===((===(
)===))===)
----------
Input: (1, 2)
Output:
-----
)===)
(===(
)===)
-----
)===)
(===(
)===)
-----
Input: (2, 2)
----------
)===))===)
(===((===(
)===))===)
----------
)===))===)
(===((===(
)===))===)
----------
Regeln:
Wie Sie im zweiten Testfall sehen können, wird, wenn mehrere Speckstücke aufeinander gestapelt sind, nur eines
-----
mit jedem Stück Speck darüber und / oder darunter getrennt. Das bedeutet, dass das Stapeln von Speck wie folgt ungültig ist:----- )===) (===( )===) ----- ----- )===) (===( )===) -----
Standardlücken sind verboten
Der Code muss Arbeit für die oben genannten Testfällen und der folgenden:
(4, 4)
,(1, 6)
,(5, 1)
,(2, 3)
,(3, 2)
Stellen Sie einen Dolmetscher zur Verfügung, mit dem die oben genannten Testfälle getestet werden können
Gewinnkriterien:
Kürzester Code gewinnt! Wir wünschen allen einen schönen Speck-Tag!
quelle
Antworten:
V ,
28, 26, 24 BytesProbieren Sie es online!
Erläuterung:
quelle
TI-Basic, 80 Bytes
Dieser war eigentlich ziemlich genial :)
quelle
Input
ohne Argumente wird standardmäßig inX
und eingegebenY
.Python 2.7, 74 Bytes
Ich bin mir sicher, dass dies noch ein bisschen mehr Golf sein könnte, aber das habe ich mir ausgedacht (Pythons Saitenmultiplikationsfunktion ist auf jeden Fall nützlich):
Probieren Sie es hier aus !
Ungolfed mit Erklärung:
quelle
Mathematica, 74 Bytes
Unbenannte Funktion, die zwei positive Ganzzahlargumente verwendet und eine Zeichenfolge mit Zeilenumbrüchen zurückgibt. Ein Mathematica-Standardansatz: Erstellen Sie ein 2d-Array von Zeichenfolgen mit einem (Mod 4) -Wähler, um die Zeichenfolgen in vertikaler Richtung zu wechseln, und reduzieren Sie sie dann zu einer einzelnen Zeichenfolge.
quelle
Batch, 168 Bytes
Eher kann ich leider nicht
@echo %s:==-%
anders schreiben , das würde die Notwendigkeit für die zweite Variable beseitigen.quelle
&
...C
9189 Bytesquelle
05AB1E , 25 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
05AB1E ,
3230 Bytes2 Bytes gespart dank Adnan .
Probieren Sie es online!
Erläuterung
quelle
")===)"
durch…)==û
:) ersetzenPython 2 , 70 Bytes
Vielen Dank an @xnor für das Speichern von 4 Bytes!
Probieren Sie es online!
quelle
[_::3]
kürzer wäre.2**n%5%3
welche Zyklen[1, 2, 1, 0, 1, 2, 1, 0, ...]
. Könnte das nützlich sein?Python 2, 59 Bytes
Erzeugt jede Zeile
a+b*3+a
ab dem Anfangszeichena
und dem mittleren Zeichenb
(aus dem berechnet wirda
). Dera
Zyklus durch'-()('
, währendb
ist,'-'
wanna
ist'-'
, und'='
sonst.67 Bytes:
Erzeugt jede Zeile von seinen äußeren Charakter
a
und Mittenzeichenb
wiea+b*3+a
, druckt dannw
Kopien davon. Diese zirkulieren über azip
.quelle
JavaScript,
132129121 Byte-8 Bytes dank @ user2428118
Hier kann man mit ziemlicher Wahrscheinlichkeit mehr golfen. Wenn Sie einen Vorschlag haben, lassen Sie ihn bitte in den Kommentaren.
quelle
(x,y)=>eval('a=b=[d="-----",c=")===)","(===(",c,d];for(i=0;++i<y;)b=[...b,...a.slice(1)].map(v=>v.repeat(x)).join
_BACKTICK NEWLINE BACKTICK_;')
Lua, 132 Bytes
Langer, wörtlicher String-Versuch. Probieren Sie es hier aus .
quelle
JavaScript (ES6), 78
Prüfung
quelle
GameMaker Language,
160139148 Bytes133 Bytesquelle
Gelee , 26 Bytes
Dies ist eine dyadische Verknüpfung (Funktion), die ein 2D-Array zurückgibt.
Probieren Sie es online!
Wie es funktioniert
quelle
C
159158153 BytesRufen Sie an mit:
quelle
C #, 160 Bytes
Formatierte Version:
Probieren Sie es online! (Aus irgendeinem Grund gibt dieser Link einen Fehler aus, funktioniert aber trotzdem)
quelle
Pfeil,
125117 BytesProbieren Sie es hier aus!
quelle
Dyalog APL, 55 Bytes
Ich benutze Dyalog APL zum ersten Mal, daher bin ich mir sicher, dass dies nicht der beste Ansatz ist.
Erläuterung: Dies ist ein recht einfacher Ansatz. Für ein Speckgitter von N × M erstelle ich eine N × (4M) -Matrix aus den folgenden vier Zeichenfolgen, die sich wiederholen:
Dann verkette ich den String
-----
an den Anfang.Hier ist eine kurze Erklärung des Codes:
quelle
Tcl , 91 Bytes
Probieren Sie es online!
quelle
PowerShell , 64 Byte
Probieren Sie es online!
quelle