Jetzt, da andere Benutzer Trump beim Bau der Mauer geholfen haben , ist es Zeit für Sie, sie zu besteigen.
Dies ist eine ASCII-Kunstherausforderung, bei der Sie eine Kletterwand mit zufällig platzierten Griffen ausgeben müssen.
Eine Kletterwand besteht aus Paneelen, von denen jedes zwischen 3 und 10 Griffe hat und 5 Paneele hoch ist. Jedes Panel ist 4 Zeichen hoch und 10 Zeichen breit
Wir verwenden |
, um die Seite der Wand (das Arête) und a -
darzustellen, um die Kanten von Paneelen darzustellen. Die Ecken der Paneele sind durch +
und die Griffe als dargestellt o
.
Schließlich muss die Wand America!
oben und Mexico
unten haben.
Ihr Programm sollte keine Eingabe annehmen, es sei denn, zur Ausführung ist eine Eingabe erforderlich, und es sollte etwas ausgegeben werden, das dem folgenden ähnlich sieht
Dies ist eine Beispielausgabe:
America!
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
Mexico
Dies kann verwirrend dargelegt werden, so dass es unten klarer strukturiert ist
Eingang
Zilcho. Sie sollten keine absolute Eingabe nehmen.
Ausgabe
Eine Ascii-Art-Kletterwand aus 5 Tafeln mit jeweils 6 Linien und 12 Säulen America!
, die oben Mexico
zentriert und unten zentriert sind. Jedes Panel hat ein identisches Muster, das vom Programm zufällig generiert wird. Das Panel-Muster besteht aus einer zufällig verteilten Zufallszahl von Laderäumen zwischen 3 und 10.
Regeln
- Keine Eingabe erlaubt
- Ich würde "keine eingebauten" sagen, aber wenn Ihre Sprache ein eingebautes dafür hat, werde ich es automatisch als Gewinner akzeptieren.
- Dies ist Code-Golf, so dass der kürzeste Code (in Bytes) gewinnt.
- Die Ausgabe ohne Holds muss genau wie oben sein, auch ohne Holds.
- Zufall ist der hier definierte Zufall
Antworten:
Gelee ,
6557 BytesErster Einsatz von der neumodischen
⁽
, einer Zwei-Punkt - Code-integer Stringliteral (⁽¥0
= 2049)Vollständiges Programm ohne Eingabe und Drucken der Wand.
Probieren Sie es online aus!
Wie?
quelle
)o <-- a space
. Hat mich wirklich zum Lachen gebracht!PHP, 138 Bytes
Probieren Sie es online aus!
Erweitert
quelle
JavaScript (ES6),
194160 ByteVersuch es
Das Muster der Laderäume ändert sich alle 2 Sekunden im folgenden Snippet.
Erläuterung
h
, der einen Anfangswert von gegeben ist0
; Dadurch wird die Anzahl der Holds auf dem Panel gezählt, wenn wir sie hinzufügen.g
Dies ist eine rekursive Funktion, mit der wir das zufällige Muster von Holds auf dem Panel erstellen. Wir werden gleich darauf zurückkommen.America!\n
.+----------+\n
), weisen ihn der Variablen zut
und fügen ihn dabei der Ausgabe hinzu.| |\n
), wiederholen sie viermal und hängen sie ant
.g
und übergeben die Zeichenfolge aus dem obigen Schritt als Argument über einen Parameterp
.g
:h>2
(dh haben wir 3 oder mehr Laderäume).p
.g
erneut auf und übergeben diesmal eine modifizierte Kopie vonp
als Argument.p
wird diereplace
Methode verwendet, bei der alle<space>
Zeichen durch ein<space>
oder ein ersetzt werden,o
indem auf den Zeichenindex (0 oder 1) der Zeichenfolge verwiesen wird<space>o
.Math.random()
, der eine Dezimalzahl zwischen 0 und 1 zurückgibt, exklusiv..8
. Mit 40 Feldern im Panel und maximal 10 Holds verbessert dies die Verteilung der Holds über das Panel (.75
wäre genauer, aber hoffentlich erlauben Sie mir die Konzession für ein Byte speichern!).s
.s
wird zu einer ganzen Zahl (0 oder 1) gezwungen und zu addierth
.h
jetzt weniger als 11 (dh haben wir derzeit weniger als 10 Holds) und ob diess
zutrifft.g
Fünffache.Mexico
am Ende der Zeichenfolge hinzufügen, um die Sache zu beenden. Puh!Alternative
Und einfach, weil ich dachte, es wäre eine schöne Ergänzung der Herausforderung gewesen: Für nur 12 zusätzliche Bytes können wir auf jedem Panel ein eindeutiges Muster von Laderäumen haben, anstatt dass alle identisch sind.
Versuch es
Auch hier ändern sich die Muster der Laderäume alle 2 Sekunden.
Code-Snippet anzeigen
quelle
Pyth -
5857 Bytes, möglicherweise 47Versuch es
Erklärung der alten Lösung (ich werde aktualisieren, wenn ich Zeit habe):
Ich denke, ich kann 47 bekommen, während ich mich technisch an die Regeln halte:
Hier wird die Anzahl der Löcher immer noch zufällig ausgewählt (aus der Menge {4,8}) und die Konfiguration dieser Löcher wird zufällig ausgewählt (aus der Menge der Konfigurationen, bei denen jede Reihe identisch ist).
Versuch es
quelle
Mathematica, 201 Bytes
quelle
Powershell (255 Bytes)
quelle
Python 2 ,
259224221218 BytesProbieren Sie es bei repl.it aus
-35 mit einigen Hinweisen von @ Satan'sSon - danke!
-3 danke an @Wondercricket
quelle
t
anstatt sie in einer Variablen zu speichern, und wenn Sie die Leerzeichen nachAmerica!
und entfernenMexico
?print" America!" <NEWLINE> d,a,b,c=[" Mexico"],["+"+"-"*10+"+"],[" "]*40,0
?from random import*
r.
Python 2, 197 Bytes
quelle