Sie sind Austragungsort der Olympischen Spiele und müssen aus diesem Anlass einen fantastischen Pool errichten, aber die Aufsichtsbehörden ändern häufig ihre Meinung zu den Abmessungen und benötigen einen schnellen Weg, um ihn mit der gewünschten Größe wieder aufzubauen!
Bei zwei Ganzzahlen L
und x
besteht Ihre Aufgabe darin, ein Schwimmbad mit Längen L
und x
Gassen zu bauen .
Wie ist ein Pool aufgebaut?
Es enthält ein inneres Quadrat, dessen horizontale Wände aus
L
aufeinanderfolgenden Strichen bestehen (-
) und dessen vertikale Wände aus3x - 1
Balken bestehen (|
). Zusätzlich+
liegen 4 Schilder in jeder Ecke. Lassen Sie uns ein Beispiel haben (L = 10, x = 2
):+ ---------- + | | | | | | | | | | + ---------- +
Jede Spur hat eine Breite von 2 vertikalen Einheiten. Das innere Quadrat ist mit
x-1
Spurentrennern gefüllt , die ausL
horizontal aufeinanderfolgenden:
Symbolen bestehen. Nach dem Einsetzen der Spurentrenner sollte unser Pool folgendermaßen aussehen:+ ---------- + | | | | | :::::::::: | | | | | + ---------- +
Ein Pool enthält auch eine Polsterung (ein äußeres Quadrat), deren horizontale Wände (L + 4)
-
und deren vertikale Wände (3x + 1) sind|
und die das innere Quadrat umgibt:+ -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
Und das ist unser olympisches ** Schwimmbad!
Technische Daten:
Für Design und Funktionalität Zwecke, werden Sie garantiert , dass
100 ≥ L ≥ 10
und15 ≥ x ≥ 2
.Die Ausgabe muss genau wie gezeigt sein. Die Ausgabe eines "vertikal erstellten" * Pools ist nicht zulässig.
Nachgestellte und führende Leerzeichen sind zulässig.
Sie können die Eingabe und Ausgabe über eine beliebige Standardmethode vornehmen .
Es gelten Standardlücken .
Beispiele / Testfälle:
L = 20, x = 3 + ------------------------ + | + -------------------- + | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | | :::::::::::::::::::: | | | | | | | | | | | + -------------------- + | + ------------------------ + L = 50, x = 5: + ------------------------------------------------- ----- + | + ------------------------------------------------- - + | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | | :::::::::::::::::::::::::::::::::::::::::::::::::: : | | | | | | | | | | | + ------------------------------------------------- - + | + ------------------------------------------------- ----- + L = 10, x = 15 + -------------- + | + ---------- + | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | | :::::::::: | | | | | | | | | | | + ---------- + | + -------------- +
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes !
* Das Wasser könnte abfließen, wenn es senkrecht gebaut wird: P
** Ja, mir ist bewusst, dass die Zeichnung umso weniger wie ein Pool aussieht, je länger die Bahnen sind und je kürzer der Pool ist!
x>=L
??L=10
undx=15
? Würde es nicht mehr Gassen geben, als im Pool platziert werden könnten? Ich könnte die Absicht falschAntworten:
Holzkohle , 32 Bytes
Probieren Sie es online!
-4 danke an Neil .
AST:
quelle
-a
Befehlszeilenargument überprüfen .-a
FehlerKohle ,
403937 BytesProbieren Sie es online!
Ich weiß, dass Neil bereits eine Antwort in etwa der gleichen Länge hat, aber ich bin etwas anders vorgegangen, also dachte ich mir, ich könnte auch meine posten.
Erläuterung
quelle
B
optional? Schön, das spart mir zwei Bytes!Kohle,
40383631 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Die Zeichengrundelemente von Charcoal verwenden die Gesamtzahl der Zeichen einschließlich
+
s. Die Eingabe ist jedoch nur die Anzahl-
s. Daher müssen wir 2 addieren, um die Breite der Innenwand zu erhalten.Berechnen Sie erneut die Höhe der Innenwand einschließlich der untersten Reihe, also drei pro Spur plus eins.
Zeichne die Gassen. Dies ist einfach ein Rechteck, das
:
durch zwei Leerzeilen vertikal voneinander getrennt ist (die Pilger stehen für Zeilenumbrüche).Der
Rectangle
Befehl ist genau das, was wir brauchen, um die Innenwand zu zeichnen. Bearbeiten: Mit dieser OptionBox
können Sie den dritten Parameter weglassen und mir 2 Bytes sparen.Und wieder, um die äußere Wand zu zeichnen, außer etwas breiter und höher und zentriert auf der inneren Wand.
quelle
T-SQL,
284281 BytesEingang wird von INT Spalten entnommen L und x in vorbestehenden Tabelle t , pro unseren erlaubt Eingabemethoden .
Grundsätzlich erstelle ich eine lange Zeichenfolge mit Buchstaben, die die wiederholten Zeichen darstellen (d = Bindestriche, s = Leerzeichen, c = Doppelpunkte, b = Zeilenumbruch), und ersetze sie am Ende durch die entsprechenden Füllzeichen.
Formatiert:
Innerhalb der Schleife hänge ich 2 Reihen Leerzeichen und 1 Reihe Doppelpunkte an. Am Ende schneide ich diese Teilerreihe ab und hänge den Poolrand an, bevor ich die Ersetzungen vornehme.
BEARBEITEN : Speichert 3 Bytes durch Umschalten
@
auf die am häufigsten verwendete Variable und Vertauschen der Initialisierungsreihenfolge.quelle
JavaScript (ES6),
137 -124 ByteIch habe es auf meinem Handy ein bisschen runtergespielt, weitere werden folgen.
Versuch es
quelle
Python 2 ,
124120117 Bytes-2 Bytes dank Hyper Neutrino
Probieren Sie es online!
quelle
t
ist nichtSOGL V0.12 ,
5251 BytesProbieren Sie es hier aus!
Nicht schlecht, wenn man bedenkt, dass 20 Bytes davon eine Rechteckfunktion sind, für die Holzkohle eine eingebaute Funktion hat.
Erläuterung:
quelle
C # (.NET Core) , 202 Byte
Probieren Sie es online!
quelle
Python 2 ,
128126 BytesProbieren Sie es online!
-2 Bytes dank @ Mr.Xcoder
quelle
PHP , 153 Bytes
Probieren Sie es online!
quelle
Python 2 , 97 Bytes
Probieren Sie es online!
Python 2 , 98 Bytes
Probieren Sie es online!
quelle
Kohle , 36 Bytes
Probieren Sie es online!
Dies ist ein mehr Charcoal-y-Algorithmus als meine andere Antwort.
quelle
C (gcc) , 195 Bytes
Probieren Sie es online!
quelle
Perl 5 , 124 + 1 (-a) = 125 Bytes
Probieren Sie es online!
quelle