入力:
- 一連の整数を取得します(stdinまたはプロンプト経由で供給されます)。
- このシリーズの整数のペアはすべて、建物の幅[有効範囲:1..10]および高さ[有効範囲:0..10]を表します
- 入力が整形式であると想定します。
サンプル入力(2行目はデモのみを目的としています):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
対応するサンプル出力:
______ / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- -------------- -------------------------------------
ルール:
建物
- 基本的なビルディングブロックは次のようになります(1 W、1H)
__ / __ / | (ベースキューブは、この質問にあるものから借用しています: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
私たちのビューは(ahum)〜3Dなので、隣接する建物は他の建物の一部を隠す場合があります。建物は左から右へ「論理的に」レンダリングされます。
最初の建物の前には、左側に2つのスペースがあります。
ベースキューブの寸法にWIDTHとHEIGHTを適用することにより、すべての建物をレンダリングします(サンプル出力をご覧ください!)。参考:左から右の「壁」までの文字数(W> 1の建物の場合):(W * 5)-(W-1)。
高さ> 0の建物には、ドアが1つあります(ドアはキャラクターによって描かれ
o
、「下」列の「左」壁から2つのキャラクターにあります)。
道:
- 道路は、「トップ」、「ミドル」、「ボトム」と呼ぶ3つの部分で構成されています。
- 「上部」部分と「下部」部分は、「上部」部分の前に2つのスペースがあるという事実を除いて同一です。
- 中央部分の前には1つのスペースがあり、次のパターンの繰り返しで構成されています。
'-'
- 長さは、結合された建物の合計幅によって決定されます。道路の右端の部分は、「最後の」建物の「右」の壁の位置に対応します。
受賞者:
これはコードゴルフです!勝者は、最短のソリューション(ソースコード数による)を獲得した資格のある競技者です。ソースは、印刷可能なASCII文字のみで構成されている必要があります。楽しむ!
(ランダムな)窓、車、または歩行者の想像上のボーナスポイント。
仕様が明確でない場合は、気軽にコメントしてください!
@user unknown:確かにルールに小さなタイプミスがありました。今すぐ修正する必要があります、ありがとう!
—
クリストフ
末尾の空白は許可されますか?あなたは例にいくつかあるようですので、私はそう思います。
—
ピーターテイラー
@Peter Taylor:末尾の空白は許可されます。
—
クリストフ
道路パート3は
—
mellamokb
'- '
(2つのスペースがある)べきですか?編集:ああ、2つのスペースは表示されません:P。ASCII 255(改行なしスペース、テンキーのALT + 255)を使用するか、ここのコメントからコピーして貼り付けることにより、複数のスペースを表示できます。Orr ...あなたは代わりにそれを繰り返すだけだと言うことができます' - '
:)
高さの有効範囲は実際には[ 0 ..10]のようです。また
—
mellamokb
but you must not enforce this
、3)ではどういう意味ですか?IMO、あなたのスコアを増加させるならば、どんな仮定でも利用できます。したがって、より少ない文字数を絞り出すことができる場合、合計幅が80未満の場合にのみ機能するコードを書くことができます。たとえば、幅が80のディスプレイバッファー配列に出力を書き込むと、合計幅が大きくなるとクラッシュします。幅をサポートしたい場合は、仮定を与えないでください-両方を持つことはできません:P