Der Scream ™ Winter Sale ist eröffnet und Sie haben sich gerade ein intensives minimalistisches Actionspiel, Super Square, geschnappt . Wenn du es spielst, stellst du fest, dass das Spiel entweder nur lächerlich schwer ist oder dass du wirklich schlecht darin bist . Insbesondere gibt es dieses "Regen" -Muster , das Sie jedes Mal zu bekommen scheint ...
Frustriert entscheiden Sie sich, sich einer anderen Herausforderung zu stellen: Zeichnen Sie das Regenmuster in ASCII-Kunst!
Eingang
Die Eingabe ist eine einzelne positive Ganzzahl, die die Größe des Musters n
angibt und über STDIN oder ein Funktionsargument angegeben wird.
Ausgabe
Die Ausgabe ist das Regenmuster in der angegebenen Größe, das als Zeichenfolge zurückgegeben oder über STDOUT gedruckt wird. Führende oder nachfolgende Leerzeichen vor oder nach dem gesamten Bild sind in Ordnung. Außerdem muss das Bild nicht bündig links vom Bildschirm sein, sondern muss deutlich erkennbar sein.
Hier ist n = 10
:
...................
| ----------------- |
| ............... |
| | ------------- | |
| | ........... | |
| | | --------- | | |
| | | ....... | | |
| | | | ----- | | | |
| | | | ... | | | |
| | | | | - | | | | |
| | | | | | | | | |
| | | | | - | | | | |
| | | | ... | | | |
| | | | ----- | | | |
| | | ....... | | |
| | | --------- | | |
| | ........... | |
| | ------------- | |
| ............... |
| ----------------- |
...................
Hier ist n = 5
:
---------
.......
| ----- |
| ... |
| | - | |
| | | |
| | - | |
| ... |
| ----- |
.......
---------
Und schließlich hier n = 1
(nur die innersten zwei Wände):
-
-
Konstruktion (für zusätzliche Klarheit)
Der Spielbereich ist wie folgt in zwei Quadrantenpaare unterteilt:
AAAAAAAAA
B AAAAAAA B
BB AAAAA BB
BBB AAA BBB
BBBB A BBBB
BBBBB BBBBB
BBBB A BBBB
BBB AAA BBB
BB AAAAA BB
B AAAAAAA B
AAAAAAAAA
Die oberen / unteren Quadranten sollten sich zwischen horizontalen Wänden, die durch Bindestriche dargestellt werden -
, und mit Punkten schattierten Lücken abwechseln .
. Die linken / rechten Quadranten sollten zwischen Räumen und vertikalen Wänden wechseln, die durch Rohre dargestellt werden
|
. Die Hauptdiagonalen sind leer und sollten immer mit Leerzeichen gefüllt sein.
Das Regenmuster der Größe n
hat 2n
Wände, wobei Wände aus den oberen / unteren Quadranten am nächsten zur Mitte liegen und Wände zwischen Quadranten wechseln, wenn wir uns von der Mitte entfernen.
Wertung
Dies ist Code-Golf, also gewinnt der Code in den wenigsten Bytes.
Antworten:
CJam,
93 87 78 6159 BytesNimmt Wert
n
über STDINEinige Beispiele:
Dies kann viel Golf gespielt werden, was ich morgen als erstes tun werde.
Probieren Sie es hier online aus
quelle
Haskell 150 Bytes
Mir ist klar, dass es nicht gewinnen wird, ich wollte nur meinen ersten Codegolf posten: D.
Verwenden Sie diese Option, indem Sie in GHCi laden und anrufen,
q n
won
die Größe ist.Einige Beispiele:
Jemand kann es wahrscheinlich besser machen, ich bin ziemlich neu in Haskell.
quelle
Python,
204,198, 191 Bytes"r" ist eine Dienstprogrammfunktion, die "b", umgeben von reflektiertem "a", mit einem optionalen Trennzeichen schreibt (ja, Lambda-Parameter können Standardwerte haben). "f" ist rekursiv und erzeugt Seiten und Mittelteile für jede Ebene. "g" ist die Regenfunktion, die mit einer Ganzzahl aufgerufen werden kann, um den angeforderten Text zurückzugeben.
quelle
Perl 5: 74 Bytes (73 Code +
-p
)Übernimmt Parameter für die Eingabe (Zeilenendezeichen für ordnungsgemäße Funktion erforderlich):
Ungolfed:
quelle