Memasukkan:
- Anda mendapatkan serangkaian bilangan bulat (diumpankan melalui stdin atau prompt).
- Setiap pasangan bilangan bulat dalam seri ini mewakili WIDTH gedung [rentang valid: 1..10] dan HEIGHT [rentang valid: 0..10]
- Asumsikan input terbentuk dengan baik.
Input sampel (baris kedua hanya untuk tujuan demonstrasi):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Output sampel yang sesuai:
_______ Albania / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - - -------------------------------------
Aturan:
Bangunan-bangunan
- Balok pembangun dasar terlihat seperti ini (1 W, 1 H)
__ / __ / | (kubus dasar dipinjam dari yang ada di pertanyaan ini: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Pandangan kami adalah (ahum) ~ 3D sehingga bangunan tetangga dapat menyembunyikan bagian lain. Bangunan 'secara logis' dirender dari kiri ke kanan.
Bangunan pertama didahului oleh dua ruang di sebelah kiri.
Anda membuat setiap bangunan dengan menerapkan WIDTH dan HEIGHT ke dimensi kubus dasar (lihat output sampel yang disediakan!). Untuk referensi: jumlah karakter dari kiri ke kanan 'dinding' (untuk bangunan dengan W> 1): (W * 5) - (W-1).
Bangunan dengan Tinggi> 0 memiliki SATU pintu (yang digambarkan oleh karakter
o
dan terletak di dua karakter dari dinding 'kiri' di baris 'bawah').
Jalan:
- Jalan terdiri dari tiga bagian yang kita sebut 'atas', 'tengah' dan 'bawah'.
- Bagian 'atas' dan 'bawah' identik terlepas dari kenyataan bahwa bagian 'atas' didahului oleh dua spasi.
- Bagian tengah didahului oleh satu spasi dan terdiri dari pengulangan pola berikut:
'-'
- Panjang harus ditentukan oleh lebar total bangunan gabungan: bagian paling kanan jalan sesuai dengan posisi dinding 'kanan' dari bangunan 'terakhir'.
Pemenang:
Ini golf kode! Pemenangnya adalah kontestan yang memenuhi syarat dengan solusi terpendek (berdasarkan jumlah kode sumber). Sumber harus terdiri dari karakter ASCII yang dapat dicetak. Selamat bersenang-senang!
Poin bonus imajiner untuk jendela, mobil, atau pejalan kaki (acak).
Jangan ragu untuk berkomentar jika spesifikasinya tidak jelas!
'- '
(dengan dua spasi)? Sunting : Ah, kedua spasi tidak menunjukkan: P. Anda dapat menampilkan banyak ruang dengan menggunakan ASCII 255 (ruang tanpa-putus, ALT + 255 pada numpad), atau dengan menyalin dan menempel dari komentar saya di sini. Orr ... Anda malah bisa mengatakan itu adalah pengulangan' - '
:)but you must not enforce this
3)? IMO, asumsi apa pun tersedia untuk dieksploitasi jika itu meningkatkan skor Anda. Jadi saya dapat menulis kode yang hanya berfungsi jika total lebar kurang dari 80 jika saya dapat memeras jumlah karakter yang lebih rendah. Misalnya, menulis output ke array buffer tampilan dengan lebar 80, sehingga akan macet pada lebar total yang lebih tinggi. Jika Anda menginginkan lebar yang didukung, maka jangan memberikan asumsi - Anda tidak dapat memiliki keduanya: PJawaban:
Haskell, 396 karakter
Contoh output:
sumber
Python, 415 karakter
Gunakan irisan untuk menggambar semua bagian bangunan.
sumber