2つのパラメータlane patternとroad lengthを指定すると、Roads and Traffic Serviceが道路をペイントするための車線マークのASCII表現を出力します。
入出力の例
入力: BTHMLRPHU、21
2つのパラメーターを取るか、文字列の末尾に数値を連結するかどうかは気にしません。それは明確です。
入力は、関数の引数、環境変数など、言語で意味のあるものとして、STDINから取得できます。
出力:
! | 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 !
各文字は、幅0.5メートル、長さ1キロメートルを示します。
仕様
車線表示
道路が10 km伸びるごとに、2、3、9、10 km(出力の「上」から)にマーキングが描かれます。マーキングはレーンの中央に配置されます。自転車レーンと中央分離帯を除き、すべてのレーンの幅は3メートル(6文字)です。
出力例に示されているように、マーキングの代わりにASCIIのひし形と矢印の文字を使用することはできません。
B: 自転車専用車線。Bマーキング。幅1.5メートル(3文字)。T:トランジット。ダイヤモンドマーキングH:占有率の高い車線。HOV3マーキングLとR:車線を曲がります。矢印マーキングP:追い越し車線。キャレットマーキングU:無制限の車線。マーキングなし
セパレーター(優先順)
- 中央値:(入力文字列でで
##示されM、溝を含む他のセパレータを置き換えます) - 溝(左端と右端):
!感嘆符 - 間のHOVレーンの代替
xと|5キロごと - 正常:
|
制約
関数またはプログラムは以下を行う必要があります。
- STDOUTに出力(これは
System.out.print、Java、console.logJavaScriptなどに相当するものを意味します) - 0-10中央値で1-9レーンを印刷できます
- 最大50 kmの道路(50行の出力)を印刷できる
- 標準的な抜け穴を使用しない
\n出力の末尾のオプションを除き、末尾の空白は受け入れられません
可能な最大の出力:3700バイト(74文字* 50行)。
最小出力:5バイト(入力ありB、1)
仮定
- 隣接する中央値なし(部分文字列
MMは発生しません) - マーキングの2行目が途切れる場合があります(たとえば、長さが9または12 kmの場合)
- レーンは論理的に意味をなさない場合があります(たとえば、道路の左側の右折車線など、任意の順序が可能です)
これはcode-golfなので、最短のコード(バイト単位)が勝ちです!