Für zwei gegebene Parameter Spurmuster und Straßenlänge , drucken Sie eine ASCII - Darstellung der Fahrspurmarkierungen für Straßen- und Verkehrsdienst der Straßen zu malen.
Beispiel Eingabe / Ausgabe
Eingabe:, BTHMLRPHU
21
Es ist mir egal, ob Sie zwei Parameter verwenden oder die Zahl an das Ende der Zeichenfolge anhängen, es ist eindeutig.
Die Eingabe kann von STDIN als Funktionsargument und Umgebungsvariablen erfolgen, was auch immer in Ihrer Sprache sinnvoll ist.
Ausgabe:
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
! B | /\ x HOV3 ## <- | -> | ^^ x HOV3 x !
! B | \/ x HOV3 ## | | | | ^^ x HOV3 x !
! | x ## | | x x !
! | x ## | | x x !
! | | ## | | | | !
! | | ## | | | | !
! | | ## | | | | !
! B | /\ | HOV3 ## <- | -> | ^^ | HOV3 | !
! B | \/ | HOV3 ## | | | | ^^ | HOV3 | !
! | x ## | | x x !
Jedes Zeichen entspricht einer Breite von 0,5 Metern und einer Länge von einem Kilometer.
Spezifikation
Fahrspurmarkierungen
Für jeden 10 km langen Straßenabschnitt werden Markierungen in den Kilometern 2, 3, 9 und 10 (von der "Oberseite" der Ausgabe) angebracht. Markierungen werden in der Spur zentriert. Mit Ausnahme der Fahrradspur und des Medians sind alle Spuren 3 Meter (6 Zeichen) breit.
ASCII-Rauten- und Pfeilzeichen sind anstelle der in der Beispielausgabe angegebenen Markierungen nicht zulässig.
B
: Radweg.B
Markierung. 1,5 Meter (3 Zeichen) breit.T
: Transit. DiamantmarkierungH
: Fahrzeugspur mit hoher Belegung.HOV3
MarkierungL
undR
: Abbiegen. PfeilmarkierungP
: Überholspur. Caret-MarkierungenU
: Uneingeschränkte Fahrspur. Keine Markierungen
Trennzeichen (in der Reihenfolge ihrer Rangfolge)
- Median:
##
(bezeichnet durchM
in der Eingabezeichenfolge, ersetzt alle anderen Trennzeichen einschließlich Graben) - Graben (ganz links und ganz rechts):
!
Ausrufezeichen - HOV-Spuren wechseln zwischen
x
und|
alle 5 km - Normal:
|
Einschränkungen
Ihre Funktion oder Ihr Programm muss:
- In STDOUT drucken (entspricht
System.out.print
Java,console.log
JavaScript usw.) - Sie können 1 - 9 Spuren mit 0 - 10 Medianwerten drucken
- Sie können bis zu 50 km Straße drucken (50 Zeilen Ausgabe).
- Verwenden Sie keine Standardlücken
- Der nachgestellte Leerraum ist mit Ausnahme eines optionalen Leerraums
\n
am Ende der Ausgabe nicht zulässig
Größtmögliche Ausgabe: 3700 Bytes (74 Zeichen * 50 Zeilen).
Kleinstmögliche Ausgabe: 5 Bytes (mit Eingabe B
, 1)
Annahmen
- Keine benachbarten Mediane (Teilzeichenfolge tritt
MM
nicht auf) - Die zweite Markierungslinie wird möglicherweise abgeschnitten (z. B. bei einer Länge von 9 oder 12 km).
- Spuren sind möglicherweise nicht logisch sinnvoll (jede Reihenfolge ist möglich, z. B. eine Rechtskurve links von der Straße)
Das ist Code-Golf , also gewinnt der kürzeste Code (in Bytes)!