Anda tidak ingin membayar uang untuk program arsitektur mahal, jadi Anda memutuskan untuk membuat sendiri. Anda memutuskan untuk menggunakan ASCII untuk mendesain bangunan Anda. Program Anda akan mengambil string tunggal yang diformat dengan cara tertentu, dan program akan menampilkan bangunan.
Memasukkan
Input terdiri dari satu baris karakter. Dapat diasumsikan hanya berisi huruf a-j, angka 1-9, dan simbol -dan +.
Deskripsi Output
Untuk setiap huruf a-j, program akan menampilkan garis vertikal sebagai berikut. Kami akan menyebutnya kolom.
.
..
...
****
*****
******
-------
--------
+++++++++
++++++++++
abcdefghij
Misalnya, input abcdefgfedefghgfedcakan menghasilkan:
.
* ***
*** *****
***** *******
---------------
-----------------
++++++++++++++++++
+++++++++++++++++++
Surat dapat diawali dengan bilangan bulat positif n, yang akan menambahkan nkarakter spasi putih di bawah kolom. Kami akan menyebutnya offset. Misalnya, menggunakanS untuk memberi notasi spasi putih, input 3b2b3bakan menampilkan:
+ +
+++
S+S
SSS
SSS
Surat juga dapat diawali dengan bilangan bulat negatif-m , yang akan menghapus karakter m non-spasi bawah kolom (tidak menggantikannya dengan spasi putih, menghapusnya seluruhnya). Kami akan menyebutnya sepotong. Misalnya input-1j-2j-3j-4j-5j-6j-7j-8j akan menghasilkan:
.
..
...
*...
**...
***...
-***...
--***...
+--***..
Offset dan sepotong dapat diterapkan ke baris yang sama, tetapi offset harus pergi dulu. Dengan kata lain, huruf dapat diawali dengan n-m, di mana nukuran offset, dan mukuran irisan. Misalnya, gunakan Suntuk memberi notasi spasi putih, input '2-4j' akan menampilkan:
.
.
.
*
*
*
S
S
Terakhir, +operator yang digunakan antara dua kolom menunjukkan bahwa mereka harus ditumpuk satu sama lain dalam kolom yang sama, bukan dalam kolom terpisah. Misalnya, input `2-4ja 'menghasilkan:
.
.
.
*
*
*
S
S+
Sedangkan 2-4j+aoutput input :
+
.
.
.
*
*
*
S
S
Berikut adalah contoh input:
abiehef+ehfhabc
Dan output yang dihasilkan:
*
-
. -
. . +. .
* * +* *
* * ****
********
--------
-------- -
+++++++++ ++
+++++++++++++
Tampak seperti menara kastil yang sudah hancur.
Berikut ini input sampel lain:
6b5b+a6b1-2d+3-4f1-2d+-2c+2-4f+1-2d+-2c2-2d+1-4g+1-2c+b+-2c+-4e2-7j+-4g+d+-2c+-4f2-7j+-5h+b+-2c+a+-3f2-7j+-7i+-4e+b+b+a+-4f2-7i+a+-7h+-4f+b+b+a+-4f2-7j+-7h+-4f+a+-7h+a+-7i+-4f2-7j+-7i+-6h+a+-7i+b+-4e3-7i+a+-7h+-4e+a+-7h+b+1-7h3-7j+1-4f+-7h+b+-4f+a3-7j+2-4f+a+-4f+b3-2d+-2d+3-4g+b3-2d+-2d+-2c
Dan output yang dihasilkan:
****** +++
******+.*++
---++.+ ***
-+-+++..++**
-+--+++.+++*
--++++.+..*
+++++.+**
+++****.****** -
+++*****.**.. --
+ ***....+..--
...+.....--
--.........--
---......
--
(Seharusnya Mario tapi ternyata tidak terlalu baik ...)
Jika spesifikasinya masih tidak jelas, saya memiliki implementasi non-golf ditulis dengan Python 2.7. Anda dapat menjalankannya dan bereksperimen untuk merasakan bagaimana spesifikasi bekerja. Anda juga dapat memilih untuk menertawakan keterampilan pemrograman saya.
Ini adalah kode-golf, sehingga entri terpendek menang. Ajukan pertanyaan dalam komentar jika tidak jelas.
a+a+a+a+aakan menampilkan lima tanda plus di atas satu sama lain.
